python - 如何忽略带引号的字段中的 CSV 分隔符?

标签 python python-3.x csv

我有一个格式如下的 CSV 数据转储:

"field1";"{"JSON-KEY": "JSON-VALUE"}";"field3"

如果我像这样使用 CSV Python 阅读器...

csv.reader(csvfile, delimiter=';', quotechar='"')

我遇到两个问题:

(1) 当 JSON-VALUE 字符串包含分隔符字符“;”时Reader 将其视为分隔符并将 VALUE 分为两个字段。

(2) 当 (1) 不是问题时,JSON-VALUE 字段会被误解为开头少一个引号,末尾多一个引号。例如:

 ['field1','{JSON-KEY": "JSON-VALUE"}"','field3']

这两个问题可能是相关的,但我无法通过使用 Python 文档和其他问题来解决这个问题。有谁知道我在这里缺少什么以及如何配置阅读器来处理这个问题?

最佳答案

实际上,csv数据无效。引号应该像这样转义:

"field1";"{""JSON-KEY"": ""JSON-VALUE""}";"field3"

如果您无法控制 csv 数据的生成,您可以尝试使用 quotechar='',然后删除字段中的引号。

但是如果json数据中有;,那就有问题了。

另一种选择是手动读取第一个和最后一个字段,并将它们之间的数据视为 json 数据。

关于python - 如何忽略带引号的字段中的 CSV 分隔符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51567135/

相关文章:

python - 安排 python 脚本在 AWS 中运行

python - 使用 Google Apps 脚本 API 可执行文件的服务器到服务器身份验证

python - pygame.错误: mixer not initialized How To Fix?

python - 将 CSV 转换为列表导致列表中的列表

excel - 使用 VBA 复制粘贴脚本比较两个 CSV 文档

python - 将 csv 文件导入 Python 中的矩阵/数组

python - 如何在pygame中创建子弹?

python - Web 应用程序中高效的作业进度更新

python - 需要使用 python 替换配置文件中的相似键值

python - 如何将行名称添加到pandas数据框中的单元格?