列['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