【问题标题】:csv to json script results in malformed json [closed]csv 到 json 脚本导致格式错误的 json [关闭]
【发布时间】:2017-04-24 19:25:41
【问题描述】:

我有一个简短的脚本来从 csv 创建 json 文件。 该脚本似乎适用于较小的 csv,但对于较大的 csv(有几百行,大约 12 个属性),最后创建的 json 似乎只是停在 json 中间,没有右括号

下面的脚本:

import sys, getopt
import csv
import json
CSV_monthly = 'my\path.csv'
JSON_monthly = 'another\path.json'

csv_file = csv.DictReader(open(CSV_monthly, 'r'))
f = file(JSON_monthly, 'w')
for row in csv_file:
   f.write(str(row)+",\n")

【问题讨论】:

  • 您不应该使用 csv 库编写 JSON。请改用 json 库。

标签: python json csv


【解决方案1】:

json.dump(list(csv_file), f)替换你的循环。

永远不要手动编码 JSON。

str(row) 与 JSON 不同。 JSON 总是使用双引号。 Python 尝试使用无效 JSON 的单引号。

使用with 语句来处理文件。

使用open打开文件,而不是file

【讨论】:

  • 建议您在答案中添加完整的代码 sn-p 以显示所有更改。
  • 我的脚本来自对 SO 上另一个 Q 的回答:stackoverflow.com/questions/43008753/… 上面的脚本似乎适用于较小的 csv。
  • 我也不认为上面的帖子是一个答案,而是一些建议
  • @JasonBK 第一点是答案,接下来的两点密切相关。我根本不知道您的代码应该如何工作。例如,您抱怨它省略了右括号,但您的代码没有提及右括号或左括号。加上尾随逗号无效,您的引号几乎肯定是错误的。
  • @JasonBK 你也没有关闭你的输出文件,这可能就是它看起来不完整的原因。使用with 语句的另一个原因。
猜你喜欢
  • 2010-12-25
  • 2011-07-18
  • 2011-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-28
  • 1970-01-01
相关资源
最近更新 更多