1

在我的应用程序中,我连接到一个服务器,该服务器返回一些类似于字典的 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')

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

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 回答