2024-06-28 10:54:36 发布
网友
Json对象的值来自上面的一个Json对象: 标题:'\u05d9\u05d7\u05e4\u05d9\u05dd'
我需要将这些值打印为可读的文本,但是我不能转换它们,因为它们被当作文本字符串而不是unicode对象。在
做unicode(myStr)不起作用 做a = u'%s' % myStr不起作用
unicode(myStr)
a = u'%s' % myStr
所有的都以字符串形式转义,因此返回相同的字符序列。 有人知道我如何用python进行转换吗?在
也许正确的方法是更改响应的编码,我该怎么做呢?在
您应该使用json模块将JSON数据加载到Python对象中。它将为您处理这个问题,并且您将有Unicode字符串。然后你可以对它们进行编码以匹配你的输出设备,然后打印出来。在
json
json字符串总是使用",而不是',因此'\u05d9\u05d7\u05e4\u05d9\u05dd'不是json字符串。在
"
'
'\u05d9\u05d7\u05e4\u05d9\u05dd'
如果加载一个有效的json文本,那么其中的所有Python字符串都是Unicode,因此不需要解码任何内容。要显示它们,您可能需要使用适合终端的字符编码对它们进行编码。在
#!/usr/bin/env python # -*- coding: utf-8 -*- import json d = json.loads(u'''{"title": "\u05d9\u05d7\u05e4\u05d9\u05dd"}''') print d['title'].encode('utf-8') # -> יחפים
注:源编码(在第一行中指定)与输出编码(最后一行)相等是巧合,它们是不相关的,可以是不同的。在
如果您希望在json文本中看到更少的\uxxxx序列,那么可以使用ensure_ascii=False:
\uxxxx
ensure_ascii=False
["\u05d9\u05d7\u05e4\u05d9\u05dd"] ["יחפים"]
如果出于某种原因在JSON对象之外有这样一个字符串,可以使用raw_unicode_escape对该字符串进行解码,以获得所需的unicode字符串:
>>> '\u05d9\u05d7\u05e4\u05d9\u05dd'.decode('raw_unicode_escape') u'\u05d9\u05d7\u05e4\u05d9\u05dd' >>> print '\u05d9\u05d7\u05e4\u05d9\u05dd'.decode('raw_unicode_escape') יחפים
您应该使用
json
模块将JSON数据加载到Python对象中。它将为您处理这个问题,并且您将有Unicode字符串。然后你可以对它们进行编码以匹配你的输出设备,然后打印出来。在json字符串总是使用
"
,而不是'
,因此'\u05d9\u05d7\u05e4\u05d9\u05dd'
不是json字符串。在如果加载一个有效的json文本,那么其中的所有Python字符串都是Unicode,因此不需要解码任何内容。要显示它们,您可能需要使用适合终端的字符编码对它们进行编码。在
Example
注:源编码(在第一行中指定)与输出编码(最后一行)相等是巧合,它们是不相关的,可以是不同的。在
如果您希望在json文本中看到更少的
\uxxxx
序列,那么可以使用ensure_ascii=False
:Example
^{pr2}$输出
如果出于某种原因在JSON对象之外有这样一个字符串,可以使用raw_unicode_escape对该字符串进行解码,以获得所需的unicode字符串:
相关问题 更多 >
编程相关推荐