это работало для меньших csvs, но для больших csvs это создавало искаженный JSON, оно почему-то заканчивалось в середине строки .. ответ ниже, похоже, работал и для тех случаев ... но я ценю ответ @alfasin
ел бы преобразовать CSV в набор объектов JSON с Python, отформатированный в строках.
Я попробовал этот скрипт ниже, собрал из пары SO ответов, но это форматирует так:
{
key:'value'
},
{
key:'value'
} // etc
Я хотел бы отформатировать это как:
{ key, 'value'},
{ key, 'value'}, // etc
Я попробовал несколько способов, предложенных здесь, чтобы вставить новую строку, но ни один из них не сработал.
скрипт ниже:
import sys, getopt
import csv
import json
CSV_PATH = 'path/file.csv'
JSON_PATH = 'path/demo.json'
csv_file = csv.DictReader(open(CSV_PATH, 'r'))
json_list = []
for row in csv_file:
json_list.append(row )
file(JSON_PATH, 'w').write(json.dumps(json_list, indent=4, separators=(' ,') ))
мой CSV прост:
SUM_F SUM_I SUM_P SUM_PI SUM_Bt SUM_BI SUM_M SUM_MI Year Month
15 3963 14 993 0 91 1 2879 2009 1
так далее..
РЕДАКТИРОВАТЬ: я получил это предложение в комментариях другогосообщение:
for x in json_list: print json.dumps(x)
это напечатает формат, который я ищу, но я еще не выяснил, как записать это в файл JSON.