Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何删除转义'\';在我的字符串中解码编码的字母?_Python_Unicode Escapes - Fatal编程技术网

Python 如何删除转义'\';在我的字符串中解码编码的字母?

Python 如何删除转义'\';在我的字符串中解码编码的字母?,python,unicode-escapes,Python,Unicode Escapes,我正在做一个项目,数据集来自棋盘游戏极客 我所关心的问题是我正在研究的比赛的名称。 我认为编码工作不好,所以我在收到的csv文件中对字母进行了编码。 例如:Orl\u00e9ans而不是Orléans 当我在Python中导入csv时,它们仍然是这样,我想更正这些字母 我设法找到了正确的功能,我猜是这样的: >>> unicodedata.normalize("NFD", 'Orl\u00e9ans') 'Orléans' 问题是我无法通过for循环运行

我正在做一个项目,数据集来自棋盘游戏极客

我所关心的问题是我正在研究的比赛的名称。 我认为编码工作不好,所以我在收到的csv文件中对字母进行了编码。 例如:Orl\u00e9ans而不是Orléans

当我在Python中导入csv时,它们仍然是这样,我想更正这些字母

我设法找到了正确的功能,我猜是这样的:

>>> 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