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

1 投票
2 回答
3172 浏览
提问于 2025-04-16 07:41

在我的应用程序中,我正在连接一个服务器,这个服务器返回一些类似字典的 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的回答那样。

撰写回答