2017-04-24 89 views
1

我有一个简短的脚本来从csv创建json文件。 该脚本似乎适用于较小的csvs,但与一个较大的csv(有几百行,约12属性)最后创建的json似乎只是停止在json的中间,没有右括号csv到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") 
+1

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

回答

2

将您的循环替换为json.dump(list(csv_file), f)

不要手动编码JSON。

str(row)与JSON不一样。 JSON始终使用双引号。 Python尝试使用无效JSON的单引号。

使用with语句来处理文件。使用open打开文件,而不是file

+1

建议您在显示所有更改的答案中添加完整的代码片段。 – martineau

+0

我的脚本来自另一个Q上的答案因此:http://stackoverflow.com/questions/43008753/csv-to-json-with-python-json-in-rows上面的脚本似乎工作正常与较小CSV。 – JasonBK

+0

我也不觉得上面的帖子是一个答案,这么多建议 – JasonBK