我的 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)