もっと複雑な構造を構築しようとすると、単純な辞書{}とリスト[]からJSONをビルドできます。私は出力JSONに '\'を埋め込みます。Pythonは動的にJSONをサブアレイで構築します
私が欲しいの構造は:
{'name': 'alpha',
'results': '[{"entry1": "[{\\\\"sub1\\": \\\\"one\\\\"}, {\\\\"sub2\\\\": '
'\\\\"two\\\\"}]"}, {"entry2": "[{\\\\"sub1\\\\": \\\\"one\\\\"},
{\\\\"sub2\\\\": '
'\\\\"two\\\\"}]"}]'}
注埋め込ま\\:
{"name": "alpha",
"results": [{"entry1":
[
{"sub1": "one"},
{"sub2": "two"}
]
},
{"entry2":
[
{"sub1": "one"},
{"sub2": "two"}
]
}
]
}
これは私が得るものです。コードがjson.dumpsを通過するたびに、別の\が追加されます。
ここでほとんど動作するコードですが、しない:この行で
import json
import pprint
testJSON = {}
testJSON["name"] = "alpha"
#build sub entry List
entry1List = []
entry2List = []
topList = []
a1 = {}
a2 = {}
a1["sub1"] = "one"
a2["sub2"] = "two"
entry1List.append(a1)
entry1List.append(a2)
entry2List.append(a1)
entry2List.append(a2)
# build sub entry JSON values for Top List
tmpDict1 = {}
tmpDict2 = {}
tmpDict1["entry1"] = json.dumps(entry1List)
tmpDict2["entry2"] = json.dumps(entry2List)
topList.append(tmpDict1)
topList.append(tmpDict2)
# Now lets' add the List with 2 sub List to the JSON
testJSON["results"] = json.dumps(topList)
pprint.pprint (testJSON)
エンコードされたJSONをdictに埋め込み、すでにエンコードされているJSONを再エンコードします。 JSONを "マージ"したい場合は、単に辞書をマージする –
単純に、Pythonのdictやlistの形式でデータを構築し、最後に 'json.dumps(data)'を使ってJSONに変換します。 JSONは特殊なデータ型ではなく、文字列形式のデータを表す逐次化メソッドです。 –