使用引号和逗号解析csv

问题描述 投票:0回答:3

我试图在Pandas中读取一个csv(通过read_csv函数),其中第二个属性text包含一个用双引号封装的字符串。一些示例在字符串中包含更多引号,这些引号被转义,例如"He said \"Okay, I will\" but I doubt it"

e.g. 
  id, text
   0, "random text"
   1, "He said \"Okay, I will\" but I doubt it"

每当我运行read_csv函数时,我得到错误CParserError: Error tokenizing data. C error: Expected 2 fields in line 1, saw 3。这是因为子字符串\"Okay, I will\"中的逗号被识别为分隔符,而不是。

我怎样才能解决这个问题?


编辑

我在另一个post上找到了解决方案。我要做的就是为read_csv添加2个属性:pd.read_csv('dataset.csv', escapechar='\\', encoding='utf-8')。现在工作正常。

python pandas csv escaping double-quotes
3个回答
1
投票

您显示的文件不正确。引用字段内的引号应该加倍。分隔符后不应出现空格。它应该是:

id,text
0,"random text"
1,"He said ""Okay, I will"" but I doubt it"

0
投票

你想要read_csv()quotechar参数:

用于表示引用项目的开头和结尾的字符。引用的项目可以包括分隔符,它将被忽略。

所以添加quotechar='"'


0
投票

我在另一个post上找到了解决方案。我要做的就是为read_csv添加2个属性:pd.read_csv('dataset.csv', escapechar='\\', encoding='utf-8')。现在工作正常。

© www.soinside.com 2019 - 2024. All rights reserved.