2017-01-20 2 views
0

Добрый день сэрыPython - CSV на несколько JSONs

Я уже знаю, как преобразовать файл CSV в формате JSON, но я сейчас не в состоянии получить каждый Csv линии, сохраненные в другом формате JSON.

Пример:

Ряд 1: Json1.json

Row 2: Json2.json

Имя каждого файла будет одним из FIELDNAME каждой строки

Может кто-нибудь дать мне свет на это?

Код следующим образом:

import csv 
import json 

# Open the CSV 
f = open('/path/to/filename.csv', 'rU') 
# Change each fieldname to the appropriate field name. I know, so  difficult. 
reader = csv.DictReader(f, fieldnames = ( "fieldname0","fieldname1","fieldname2","fieldname3")) 
# Parse the CSV into JSON 
out = json.dumps([ row for row in reader ]) 
print "JSON parsed!" 
# Save the JSON 
f = open('/path/to/parsed.json', 'w') 
f.write(out) 
print "JSON saved!" 
+1

'[строка для строки в читателя]' это 'список (читатель)' (не усложнять код). – DyZ

ответ

4

сделать новый JSON для каждой строки

for idx, row in enumerate(reader,1): 
    fout = open('Json'+str(idx)+'.json','w') 
    fout.write(json.dumps(row)) 
    fout.close() 
+3

'enumerate (reader, 1)' запустит 'idx' в' 1' .. – thebjorn

+1

, пожалуйста, закройте файл явно или используйте блок 'with'. и используйте 'format' для генерации имени файла. Иначе приятно. –