我的 csv 文件中的文本被读取为原始字符串。它包含“it\'s”而不是它。我该如何清洁这个?

Posted

技术标签:

【中文标题】我的 csv 文件中的文本被读取为原始字符串。它包含“it\\\'s”而不是它。我该如何清洁这个?【英文标题】:My text from csv file is being read as raw string. It contains "it\'s" instead of it's. How do I clean this?我的 csv 文件中的文本被读取为原始字符串。它包含“it\'s”而不是它。我该如何清洁这个? 【发布时间】:2020-03-12 18:39:28 【问题描述】:

句子

'I understood that that morning did not work out for her but I would still like to to make an appointment with her. I mean if she does great lashes and it\'s just this one little hiccup in the beginning it\'s well worth it as far as I\'m concerned.'

如何删除转义字符以清理数据?

【问题讨论】:

你的字符串是否也包含双引号?因为如果一个字符串同时包含单引号和双引号,Python 将需要在字符串的repr 中转义它们(并且它选择使用单引号)。 不,实际上它有双引号和单引号,但我将其清理为单引号。 您确定数据实际上包含反斜杠吗?根据您处理和显示数据的方式,可能是显示代码添加了反斜杠以进行显示。 minimal reproducible example 可以回答这个问题。 当我输入 list[index] 来获取句子时,我仍然看到反斜杠。我必须标记句子中的单词,所以我不想要反斜杠。 如果我们将该字符串按字面意思放入 python 变量中(例如:s='I understand...I\'m concerned.',反斜杠将不在数据中。您可以通过获取字符串并手动计算字符。这就是为什么我们需要一个实际的minimal reproducible example 而不仅仅是您的数据的近似值。我建议您从一个非常短的示例字符串开始,例如,简单的I'm。这样它会如果你的字符串有两个或三个字节,那就很明显了。 【参考方案1】:

我想,一个简单的re.sub 可能会起作用:

测试

import re

string = '''
I understood that that morning did not work out for her but I would still like to to make an appointment with her. I mean if she does great lashes and it\'s just this one little hiccup in the beginning it\'s well worth it as far as I\'m concerned.
'''

expression = r'\\'

print(re.sub(expression, '', string))

输出

我知道那天早上对她不利,但我会 还是想约她。我的意思是,如果她这样做 很棒的睫毛,一开始只是这个小问题 就我而言,这是值得的。

【讨论】:

我其实不想打印它。因此,当我将每个句子保存为列表中的列表时,它看起来仍然没有任何变化。【参考方案2】:

正确答案在@bryan-oakley 的评论中:没有什么可做的。

作为测试:

s = 'I understood that that morning did not work out for her but I would still like to to make an appointment with her. I mean if she does great lashes and it\'s just this one little hiccup in the beginning it\'s well worth it as far as I\'m concerned.'

assert len(s) == len(s.replace('\'', "'")) # passes
assert s == s.replace('\'', "'") # passes

【讨论】:

以上是关于我的 csv 文件中的文本被读取为原始字符串。它包含“it\'s”而不是它。我该如何清洁这个?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 csv 文件转换为可作为文本读取的列表列表? Python

从 qml 中的 .txt 或 .csv 文件中读取一行(Qt Quick)

Windows上的R:字符编码地狱

SAS中数据的导入(1)

如何根据 R 中的原始文件名将包含多个数据帧的大列表保存为单个 csv

从原始文本文件创建 pandas df