【问题标题】:Decode unicode in json在 json 中解码 unicode
【发布时间】:2016-03-11 14:44:02
【问题描述】:

我有代码。

# -*- 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'}}

如何获取'type'中的正常数据?

感谢大家, 控制台中的漂亮输出

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"
  }
}

【问题讨论】:

    标签: python json unicode


    【解决方案1】:

    正常数据:

    >>> 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 可以将其编码到我的终端编解码器,然后我的终端对其进行解码并显示俄语文本(西里尔字符)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-26
      • 1970-01-01
      • 2014-03-21
      • 2017-01-17
      • 1970-01-01
      相关资源
      最近更新 更多