![](/img/trans.png)
[英]How can I compare unicode type with str type in python of Chinese?
[英]when python loads json,how to convert str to unicode ,so I can print Chinese characters?
我有一个这样的json文件:
{
'errNum': 0,
'retData': {
'city': "武汉"
}
}
import json
content = json.loads(result) # supposing json file named result
cityname = content['retData']['city']
print cityname
之后,我得到一个输出: \武\汉
我知道它是武汉
汉字的unicode,但它的类型是str isinstance(cityname,str)
is True。 那么如何将此 str 转换为 unicode 并且输出将是武汉
我也尝试过这些解决方案:
>>> u'\u6b66\u6c49'
u'\u6b66\u6c49'
>>> print u'\u6b66\u6c49'
武汉
>>> print '\u6b66\u6c49'.decode()
\u6b66\u6c49
>>> print '\u6b66\u6c49'
\u6b66\u6c49
搜索了一些关于ascii,unicode和utf-8的东西,编码和解码,但也看不懂,太疯狂了! 我需要一些帮助,谢谢!
也许这个答案来得太晚了五年,但由于我在构建日语预处理器时遇到了类似的问题,因此我找到了答案。
当您loads
result
loads
到content
添加以下标志:
content = json.loads(result, ensure_ascii=False)
这解决了我的问题。
您的 json 包含转义的 unicode 字符。 您可以使用unicode_escape
编解码器将它们解码为实际的 unicode 字符:
print cityname.decode('unicode_escape')
请注意,虽然这通常会起作用,但根据 unicode 转义的来源,您可能会遇到基本多语言平面(U+0 到 U+FFFF)之外的字符问题。 我从用户@bobince 的评论中引用了一段方便的话:
请注意……有许多不同的格式使用 \\u 转义 - Python unicode 文字(unicode-escape 处理的)、Java 属性、JavaScript 字符串文字、JSON 等等。 重要的是要知道您正在处理哪个转义,因为它们对于其他哪些转义是有效的都有略微不同的规则。 unicode-escape 可能是也可能不是解析该数据的有效方式,具体取决于它的来源。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.