问题描述
我正在使用来自 Board Game Geek 的数据集开展一个项目。
我遇到的问题与我正在研究的游戏名称有关。 我认为编码效果不好,所以我在收到的 csv 文件中编码了字母。 例如:Orl\u00e9ans 而不是 Orléans
当我在 Python 中导入 csv 时,它们仍然如此,我想更正这些字母。
我设法找到了正确的功能:
>>> unicodedata.normalize("NFD",'Orl\u00e9ans')
'Orléans'
问题是我无法通过 for@H_502_18@ 循环运行此函数。
确实,显示的字符串是 'Orl\u00e9ans'
但实际上它是 'Orl\\u00e9ans'
所以函数无法完成这项工作。
有什么办法可以纠正吗?我在数据集中有 20000 个条目,我无法一一更正它们。
谢谢
编辑 我在这篇文章中得到了答案:Process escape sequences in a string in Python
>>> myString = "spam\\neggs"
>>> decoded_string = bytes(myString,"utf-8").decode("unicode_escape") # python3
>>> decoded_string = myString.decode('string_escape') # python2
>>> print(decoded_string)
spam
eggs
非常感谢
解决方法
我会尝试使用 latin1 编码如下:
导入编解码器 with codecs.open(r'$(path to your csv file)',encoding='latin1') as f: