Python 如何删除转义'\';在我的字符串中解码编码的字母?
我正在做一个项目,数据集来自棋盘游戏极客 我所关心的问题是我正在研究的比赛的名称。 我认为编码工作不好,所以我在收到的csv文件中对字母进行了编码。 例如:Orl\u00e9ans而不是Orléans 当我在Python中导入csv时,它们仍然是这样,我想更正这些字母 我设法找到了正确的功能,我猜是这样的:Python 如何删除转义'\';在我的字符串中解码编码的字母?,python,unicode-escapes,Python,Unicode Escapes,我正在做一个项目,数据集来自棋盘游戏极客 我所关心的问题是我正在研究的比赛的名称。 我认为编码工作不好,所以我在收到的csv文件中对字母进行了编码。 例如:Orl\u00e9ans而不是Orléans 当我在Python中导入csv时,它们仍然是这样,我想更正这些字母 我设法找到了正确的功能,我猜是这样的: >>> unicodedata.normalize("NFD", 'Orl\u00e9ans') 'Orléans' 问题是我无法通过for循环运行
>>> unicodedata.normalize("NFD", 'Orl\u00e9ans')
'Orléans'
问题是我无法通过for循环运行此函数。事实上,显示的字符串是
'Orl\u00e9ans'
,但事实上,它是'Orl\\u00e9ans'
,因此函数无法执行此任务
有没有办法纠正这个问题?数据集中有20000个条目,我无法一一更正。多谢各位 编辑 我在这篇文章中得到了答案:
非常感谢我将尝试使用拉丁1编码,如下所示: 导入编解码器
使用codecs.open(r'$(csv文件的路径)'),将'latin1'编码为f:FYI,
unicodedata.normalize
在此处不做任何操作。只需尝试打印('Orl\u00e9ans')。Python在解析字符串文字时已经解释了转义序列。我猜数据最初是JSON编码的…?当正确地进行JSON解析时,JSON中的Unicode转义序列应该被解码为普通字符,所以这应该是零问题。这是你现在必须在事后解决的问题吗,或者您可以简单地修复如何获取和处理原始数据并重新创建csv…?问题是,我的字符串包含'Orl\\u00e9ans'
,而不是'Orl\u00e9ans'
,我无法更改csv文件,因为它已交给我在课程中学习,所以我现在必须更改并更正它。事实上,这不是一项义务,我们的指示是:对该文件执行任何您想要的操作并尝试利用它。好的,那么您必须使用unicode escape
编码打开该文件,或者在事实发生后对其进行解码……我尝试使用.encode('utf-8','unicode escape'))
但是我得到的字节变量仍然有转义的反斜杠(\)。我可能做错了,我不太习惯编码/解码。我想我只需要将字符串中的“\\”替换为“\”,让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