1

私のアプリでは、辞書の辞書に似たjsonスタイルのユニコード文字列を返すサーバーに接続しています。idその結果、次のようなキーとユニコード値として1つのレベルの辞書を取得したいと思います:

{'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')

このタスク、特に分解をどのように行うべきですか?

4

2 に答える 2

2

これはうまくいくはずです:

outputdata = {}
for id, stuff in jsonData.iteritems():
    outputdata[id.encode("ascii")] = stuff[u"name"]

dugres の回答のように、ジェネレータ式を使用することもできます。

于 2010-11-27T13:00:32.877 に答える
0
decomp=dict((v['id'], v['name']) for v in jsondata.values())
于 2010-11-27T13:00:31.257 に答える