首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何解析CSV文件与不规则使用引号?

如何解析CSV文件与不规则使用引号?
EN

Stack Overflow用户
提问于 2019-10-29 09:24:07
回答 1查看 422关注 0票数 1

我必须解析一个逗号分隔的CSV文件,其中包括不正常使用双引号的列。文件条目如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
"1920,The False Road,American,Fred Niblo,""Enid Bennett, Lloyd Hughes""
"1920,813,American,""Charles Christie, Scott Sidney"",""Wedgwood Nowell, Ralph Lewis, Wallace Beery, Laura La Plante"",mystery

-

代码语言:javascript
代码运行次数:0
运行
复制
+---+------------+-----------------------------------+----+
|   |     A      |      B                            | C  |
+---+------------+-----------------------------------+----+
| 1 | 1920       | Fred Niblo                        | ...|
| 2 | 1920       | ""Charles Christie, Scott Sidney""| ...|
+---+------------+-----------------------------------+----+

如您所见,第一个条目的第4列不带引号,第二个条目是带引号的。

有办法考虑这种不正常的使用吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-29 13:14:14

您的csv应该看起来像这样才是正确的:

代码语言:javascript
代码运行次数:0
运行
复制
1920,The False Road,American,Fred Niblo,"Enid Bennett, Lloyd Hughes",
1920,813,American,"Charles Christie, Scott Sidney","Wedgwood Nowell, Ralph Lewis, Wallace Beery, Laura La Plante",mystery

(还请注意第一行末尾的额外逗号)

在这里,包含逗号的字段包含",您可以使用任何csv解析器(或库)正确地读取该字段。

但不知怎么看,你的csv被转换成了一个字段csv。整行用引号括起来,现有的引号用另一个引号转义(如预期的那样) --除了每行末尾缺少一个结束引号。

要解决这个问题,您可以首先在每行末尾添加一个引号,保存文件,然后将其解析为csv,它将为每行返回一个单元格(包含所有数据)。

然后,您可以将每个单元格的内容写入另一个文件,然后再次将该文件解析为csv,这将为您提供正确的数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58604492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档