如何在Python中将unicode字符串加载到json中?

时间:2017-02-11 13:43:01

标签: python json unicode tarfile

我正在尝试从压缩文件中读取文件并将数据转换为json / dictionary。但是有一段时间我一直在苦苦挣扎的unicode问题。有人可以帮忙吗?

exfile_obj = tar.extractfile(member)
data = exfile_obj.read()
print(type(data)) ## shows str
print(data)  ## it is something like: "{u'building': False, u'displayName': u'Tam\\xe1s Kosztol\\xe1nczi', u'changeSet': {u'items': u'comment'}}"
json_obj = json.loads(data) # it is a unicode object.

1 个答案:

答案 0 :(得分:6)

该数据是Python字典的字符串表示形式。您可以使用ast.literal_eval将其转换为字典,并且可以使用json.dumps将该dict转换为JSON字符串。

import ast
import json

src = "{u'building': False, u'displayName': u'Tam\\xe1s Kosztol\\xe1nczi', u'changeSet': {u'items': u'comment'}}"
data = ast.literal_eval(src)
print(data)
j = json.dumps(data)
print(j)

<强>输出

{'building': False, 'displayName': 'Tamás Kosztolánczi', 'changeSet': {'items': 'comment'}}
{"building": false, "displayName": "Tam\u00e1s Kosztol\u00e1nczi", "changeSet": {"items": "comment"}}