🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

696閲覧

JSONデータをpythonを使って変換したい

Kirari

総合スコア32

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/12/27 06:14

前提・実現したいこと

ChatworkからAPIで取り出したデータをpythonを使って変換しエクセルデータにしたいのです。
ChatworkからのデータはJSONデータです。

<チャットワークの内容>
name(1~8)
a0-200101-01~08
XXXXXXXXXXXXX
YYYYYYYYYYYYY
ZZZZZZZZZZZZZ

<作成したいエクセルデータの構成>
A    B    C    D    E F
1  name1   a    0 200101 1 XXXXXXXXXXXXX/YYYYYYYYYYYYY/ZZZZZZZZZZZZZ
2 name2 a 0 200101 2 XXXXXXXXXXXXX/YYYYYYYYYYYYY/ZZZZZZZZZZZZZ
3  name3 a 0 200101 3 XXXXXXXXXXXXX/YYYYYYYYYYYYY/ZZZZZZZZZZZZZ
4  name4 a 0 200101 4 XXXXXXXXXXXXX/YYYYYYYYYYYYY/ZZZZZZZZZZZZZ
5  name5 a 0 200101 5   XXXXXXXXXXXXX/YYYYYYYYYYYYY/ZZZZZZZZZZZZZ
6  name6 a 0 200101 6   XXXXXXXXXXXXX/YYYYYYYYYYYYY/ZZZZZZZZZZZZZ
7  name7 a 0 200101 7   XXXXXXXXXXXXX/YYYYYYYYYYYYY/ZZZZZZZZZZZZZ
8  name8 a 0 200101 8   XXXXXXXXXXXXX/YYYYYYYYYYYYY/ZZZZZZZZZZZZZ

下記のコードを書きました。
ですが、エラーコードが出ました。対応方法がわからず困っています。
アドバイス頂けないでしょうか。

発生している問題・エラーメッセージ

Traceback (most recent call last): File "<ipython-input-1-vvvvv>", line 1, in <module> runfile('C:/Users/XXXXXXX/タイトル無し1.py', wdir='C:/Users/XXXXXX') File "C:\ProgramData\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 704, in runfile execfile(filename, namespace) File "C:\ProgramData\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 108, in execfile exec(compile(f.read(), filename, 'exec'), namespace) File "C:/Users/XXXXXX/タイトル無し1.py", line 19, in <module> print("{n}({i}):{d}\n{b}".format(n=name,b=body))

該当のソースコード

python3

1import datetime 2import requests 3import json 4 5headers = { ‘X-ChatWorkToken’ : ‘自分のAPIトークン’, } 6 7mes = requests.get(“チャットワークのHttp”,headers=headers) 8jm = json.loads(mes.text) 9 10import xlsxwriter 11wb = xlsxwriter.Workbook('C:/Users/xxxxxxxx/Desktop/out.xlsx') 12ws1 = wb.add_worksheet('sheet') 13 14row_index=0 15for i in jm: 16 name=i.get("account").get("name") 17 body=i.get("body") 18 print("\n--------------------------------------------") 19 print("{n}({i}):{d}\n{b}".format(n=name,b=body)) 20 print("--------------------------------------------") 21 22 if name: 23 ws1.write(row_index, 0, name) 24  if body: 25 ws1.write(row_index, 1, body) 26 27 row_index=row_index+1 28 29wb.close()

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hayataka2049

2019/12/27 06:40

エラーは本当にそれで全文ですか? 続きなどがあったら編集して追記しておいてください。
guest

回答1

0

ベストアンサー

python

1 print("{n}({i}):{d}\n{b}".format(n=name,b=body))

この場合はstr.formatの引数にidも渡す必要があるかと。

python

1 print("{n}({i}):{d}\n{b}".format(n=name, b=body, i=何か, d=何か))

何かが具体的に何なのかは割と憶測になってしまうので、質問者様に対応していただいた方が良いかと思います。

投稿2019/12/27 06:42

hayataka2049

総合スコア30935

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kirari

2020/01/05 07:27

ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問