2017-11-07 7 views
0

のJSON constatnキーを省略し、私は、フォーム辞書にJSONをパース -

[{'key' : 'key1', 'value' : 'value1'}, {'key' : 'key2', 'value' : 'value2'}, ...] 

のJSONを持っていると私はちょうどjson.loadをした場合、私は、フォーム

{'key1' : 'value1', 'key2' : 'value2'} 

の辞書を取得したいとwoudl私は最終的に

[{u'key': u'key1', u'value': u'value1'}, {u'key': u'key2', u'value': u'value2'}]} 

誰もがこれらを省略する方法を知っていますか?key, valueのエントリ?

答えて

2

何を持っていることはまずlistにそれをロードし、JSON 文字列の場合:

import json 
data = json.load(file)  # or json.loads(json_str) 

次に、あなたのdataが希望の形式に変換するために、辞書カンプを使用します。

data = [{'key' : 'key1', 'value' : 'value1'}, {'key' : 'key2', 'value' : 'value2'}] 
r = {d['key'] : d['value'] for d in data} 

r 
{'key1': 'value1', 'key2': 'value2'} 

完了したら、json.dumpに電話してファイルに保存することができます。

必須免責事項:(JSON文字列が行う、IIRC)、あなたは、重複キーが(後者のエントリは、前者を上書き)している場合、データを失うことに終わるかもしれないので、辞書は重複したキーをサポートしていないことに注意してください。