嵌套字典/ json的分解和解码

时间:2010-11-27 12:44:08

标签: python json encoding dictionary decomposition

在我的应用程序中,我正在连接到一个服务器,该服务器返回一些类似字典字典的json样式的unicode字符串。因此,我希望得到一个带有id的水平字典作为关键字和unicode值,如下所示:

{'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。我发现了两种编码方法。一:

>>> import unicodedata
>>> unicodedata.normalize('NFKD', data).encode('ascii','ignore')

和第二:

>>> data.encode('ascii','ignore')

我应该如何完成这项任务,特别是分解?

2 个答案:

答案 0 :(得分:2)

这应该有效:

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

您也可以使用生成器表达式,如dugres的回答。

答案 1 :(得分:0)

decomp=dict((v['id'], v['name']) for v in jsondata.values())