嵌套字典/json的分解与解码
在我的应用程序中,我正在连接一个服务器,这个服务器返回一些类似字典的 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
decomp=dict((v['id'], v['name']) for v in jsondata.values())
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言进行解释。
2
这个应该可以用:
outputdata = {}
for id, stuff in jsonData.iteritems():
outputdata[id.encode("ascii")] = stuff[u"name"]
你也可以使用生成器表达式,就像dugres的回答那样。