列['douban_info']
在我的数据集是关于其存储在JSON在中国电影的信息,所以当我做df['douban_info'][0]
,它返回:如何在Python中输出汉字?
,中国文字都变成了之类的东西\u7834\u6653\u8005
,我无法轻松阅读。输出时可以让Python将它们变成原始的中文吗?
我在Jupyter Notebook中使用Python 2.7。
列['douban_info']
在我的数据集是关于其存储在JSON在中国电影的信息,所以当我做df['douban_info'][0]
,它返回:如何在Python中输出汉字?
,中国文字都变成了之类的东西\u7834\u6653\u8005
,我无法轻松阅读。输出时可以让Python将它们变成原始的中文吗?
我在Jupyter Notebook中使用Python 2.7。
这就是Python 2的工作原理。在为列表和字符串生成显示字符串时,它默认显示repr()
。你必须print
字符串看Unicode字符:
>>> D = {u'aka': [u'2019\u730e\u8840\u90fd\u5e02(\u6e2f)', u'\u9ece\u660e\u65f6\u5206']}
>>> D[u'aka'][0]
u'2019\u730e\u8840\u90fd\u5e02(\u6e2f)'
>>> print D[u'aka'][0]
2019猎血都市(港)
如果你不能移动到Python 3,你必须使自己的显示处理例行程序,如果你不喜欢默认的repr()
显示。喜欢的东西:
D = {u'aka':[u'2019\u730e\u8840\u90fd\u5e02(\u6e2f)',u'\u9ece\u660e\u65f6\u5206']}
def dump(item):
L = []
if isinstance(item,dict):
for k,v in item.items():
L.append(dump(k) + ':')
L.append(dump(v))
return '{' + ', '.join(L) + '}'
elif isinstance(item,list):
for i in item:
L.append(dump(i))
return '[' + ', '.join(L) + ']'
else:
return "u'" + item + "'"
print dump(D)
输出:
{u'aka':, [u'2019猎血都市(港)', u'黎明时分']}
注意这是不完整的通用倾销程序。
在Python 3 repr()
已更新:
>>> print(D)
{'aka': ['2019猎血都市(港)', '黎明时分']}
致电json.dump
或json.dumps
与ensure_ascii=False
选项,那么你将得到原始的utf-8编码字符串。
通过https://docs.python.org/2/library/json.html
json.dump(obj, fp, skipkeys=False, **ensure_ascii=True**, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)
引用¶
你可以尝试
df['douban_info'][0].to_json(ensure_ascii=False)
获得属性与中国文字显示的值。
使用Python 3会解决这个问题,因为它改变了'repr'返回,而不是统一'bytes' – Eric
@Eric是有可能,我就不能进口'在Python 2中的任何东西来解决这个问题? (比如我从未来进口分工)。改变python版本是一件大事。 – cqcn1991
如果你使用了很多中文脚本,你会比3更好地使用3。 – Eric