我使用python在外语(韩语)中使用webscraped文本,并将其存储在dict中。
单独的文本打印到终端就好了,但是dict打印如下:
{'title':u'\ uc138 \ ubbf8 \ ub098 \ ud6c4 \ uae30'}
我该如何解决这个问题?
# -*- coding: utf-8 -*-
titleReponse = soupResponse.find('div','title').get_text()
print(titleReponse)
collected = {"title":titleReponse}
print(collected)
答案 0 :(得分:1)
它只是Python 2下Unicode字符串的内部__repr__
表示。正如您已经注意到的那样,打印它显示正确的文本:
>>> dict = {'title': u'\uc138\ubbf8\ub098 \ud6c4\uae30'}
>>> dict
{'title': u'\uc138\ubbf8\ub098 \ud6c4\uae30'}
>>> dict['title']
u'\uc138\ubbf8\ub098 \ud6c4\uae30'
print dict['title']
세미나 후기
你不应该担心内部代表在所有。是的,对于没有控制代码的纯ASCII字符串,它等于打印的内容。但是有这样的事情是完全正常的:
>>> str = '123\n456'
>>> str
'123\n456'
>>> print str
123
456
同样,内部字符串的表示与使用print
输出的内容不同。
如果要使用Unicode字符串进行大量工作,最好是升级到Python 3.它对Unicode的支持非常出色。另一个令人高兴的副作用是,在这种情况下,Unicode字符串会更好地显示(不是“正确”,而是“更好” - 存在差异):
>>> dict = {'title': u'\uc138\ubbf8\ub098 \ud6c4\uae30'}
>>> dict
{'title': '세미나 후기'}