用引号和逗号解析csv

时间:2019-03-29 21:09:53

标签: python pandas csv escaping double-quotes

我正在尝试通过read_csv函数在Pandas中读取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')。现在工作正常。

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

您需要read_csv()的{​​{3}}参数:

  

用于表示引用项目的开始和结束的字符。引用的项目可以包含定界符,它将被忽略。

因此添加quotechar='"'

答案 2 :(得分:0)

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