在json中解码unicode

时间:2016-03-11 14:44:02

标签: python json unicode

我有代码。

# -*- coding: utf8 -*-
import re, json
from pprint import pprint

jsonStr = '{"type":"\u041f\u0435\u043d\u0438","values":{"v1":"222"}}'
data = json.loads(jsonStr)
pprint(data)

输出

{u'type': u'\u041f\u0435\u043d\u0438', u'values': {u'v1': u'222'}}

如何在'中输入正常数据'?

感谢所有人, 控制台中的漂亮输出

jsonStr = '{"type":"\u041f\u0435\u043d\u0438","values":{"v1":"222"}}'
data = json.loads(jsonStr.decode("utf-8"))
print json.dumps(data, sort_keys=True, indent=2).decode("unicode_escape")

输出

{
"type": "Пени", 
"values": {
    "v1": "222"
  }
}

1 个答案:

答案 0 :(得分:2)

拥有正常数据:

>>> import json
>>> jsonStr = '{"type":"\u041f\u0435\u043d\u0438","values":{"v1":"222"}}'
>>> data = json.loads(jsonStr)
>>> print data['type']
Пени

字典和列表等Python容器使用repr()函数显示其内容;您正在查看调试器友好输出,这是ASCII安全的。为了使ASCII安全,任何非ASCII和不可打印的代码点都显示为转义序列,因此您可以将该输出复制到Python解释器并安全地重新创建值,而不必担心编解码器。

只需像往常一样使用数据。我打印了字符串,以便Python可以将其编码为我的终端编解码器,我的终端对其进行解码并显示俄语文本(西里尔字符)。