ネストされた辞書/JSONの分解とデコード
-
28-09-2019 - |
質問
私のアプリでは、辞書の辞書に似たJSONスタイルのユニコード文字列を返すサーバーに接続しています。その結果、私は1つの平準化された辞書を取得したいと思います id
このようなキーとユニコード値として:
{'1': u'autos','3': u'cities'}
したがって、JSONモジュールの組み込みで応答をロードします。
>>> jsonData = json.loads(data)
>>> jsonData
{u'1': {u'id': u'1', u'name': u'autos'}, u'3': {u'id': u'3', u'name': u'cities'}, u'2': {u'id': u'2', u'name': u'business'},}
>>> type(jsonData)
<type 'dict'>
ここで返されたオブジェクトを見ることができます。次に、親辞書を取り除くためにそれを分解する必要があります。そして最後にIDをエンコードします。エンコーディングを行う方法2つの方法を見つけました。 1 :
>>> import unicodedata
>>> unicodedata.normalize('NFKD', data).encode('ascii','ignore')
そして2番目:
>>> data.encode('ascii','ignore')
このタスク、特に分解を行うにはどうすればよいですか?
解決
これは機能するはずです:
outputdata = {}
for id, stuff in jsonData.iteritems():
outputdata[id.encode("ascii")] = stuff[u"name"]
Dugresの回答のように、発電機式を使用することもできます。
他のヒント
decomp=dict((v['id'], v['name']) for v in jsondata.values())
所属していません StackOverflow