質問

私のアプリでは、辞書の辞書に似た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())
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top