Python:辞書のリストをjsonに変換する


85

私は辞書のリストを持っており、次のようになっています。

list = [{'id': 123, 'data': 'qwerty', 'indices': [1,10]}, {'id': 345, 'data': 'mnbvc', 'indices': [2,11]}]

等々。リストにはさらに多くのドキュメントがある可能性があります。これらを1つのJSONドキュメントに変換する必要があります。これはボトルで返送できますが、その方法がわかりません。助けてください。このウェブサイトでも同様の質問を見ましたが、解決策がわかりませんでした。

回答:


124

jsonライブラリを使用する

import json
json.dumps(list)

ちなみに、変数リストを別の名前に変更することを検討するかもしれません。これlistはリスト作成の組み込み関数です。変数名を変更しないと、予期しない動作やバグのあるコードが発生する可能性があります。


1
はい。これは単なるサンプルであり、mylistという名前を使用しています。dumps()はリストでも機能しますか?私はそれが口述のためだけに使われることになっていたと思いました。
Apoorv Ashutosh 2014

ファイルをJSON列配列またはJSON行配列として保存することは可能ですか?
Anoop Toffy 2016

注:リストの再割り当て(list = [1,2,3])は、組み込みメソッドlist()と競合します。覚えておいてください。
nikhilswami20年

27
import json

list = [{'id': 123, 'data': 'qwerty', 'indices': [1,10]}, {'id': 345, 'data': 'mnbvc', 'indices': [2,11]}]

jsonファイルへの書き込み:

with open('/home/ubuntu/test.json', 'w') as fout:
    json.dump(list , fout)

Jsonファイルを読む:

with open(r"/home/ubuntu/test.json", "r") as read_file:
    data = json.load(read_file)
print(data)
#list = [{'id': 123, 'data': 'qwerty', 'indices': [1,10]}, {'id': 345, 'data': 'mnbvc', 'indices': [2,11]}]

注:リストの再割り当て(list = [1,2,3])は、組み込みメソッドlist()と競合します。覚えておいてください。
nikhilswami20年

1
response_json = ("{ \"response_json\":" + str(list_of_dict)+ "}").replace("\'","\"")
response_json = json.dumps(response_json)
response_json = json.loads(response_json)

2
こんにちは!これでOPの問題は解決するかもしれませんが、SOでコードのみの回答を書くことは一般的に推奨されていません。OPがよりよく理解し、サイトの将来の訪問者に利益をもたらすため、これが問題の解決策である理由について説明してください。ありがとう!
d_kennetz

0

いくつかの決定されたキー値を持つ単一の辞書に変換するには、以下のコードを使用できます。

data = ListOfDict.copy()
PrecedingText = "Obs_"
ListOfDictAsDict = {}
for i in range(len(data)):
    ListOfDictAsDict[PrecedingText + str(i)] = data[i]
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.