conversión de csv a json

Soy muy nuevo en la progtwigción, he estado aprendiendo python desde las últimas 3/4 semanas y esta es una de las tareas asignadas.

Entrada

A, B, C, D 1, 2, 3, 4 5, 6, 7, 8 

Salida

 {{A:"1", B:"2", C:"3", D:"4"}, {A:"5", B:"6", C:"7", D:"8"}} 

He estado intentando con el código como:

 import csv import json csvfile = open('test.csv','r') jsonfile = open('test.json','w') x = ("a","b","c","d") reader = csv.DictReader(csvfile, x) for row in reader: json.dump(row, jsonfile) 

La salida para este código es la siguiente:

 {"a": "1", "null": ["5", "6", "7", "8", "9"], "c": "3", "b": "2", "d": "4"} 

¿Puede alguien ayudarme con esto?

Volcar después de procesar filas enteras.


 import csv import json with open('test.csv') as f: reader = csv.DictReader(f) rows = list(reader) with open('test.json', 'w') as f: json.dump(rows, f) 

Para aquellos que gustan de las frases de una línea:

 import csv import json json_data = [json.dumps(d) for d in csv.DictReader(open('file.csv'))] 

Consulte este violín para ver un ejemplo funcional: https://pyfiddle.io/fiddle/5992b8f4-552f-4970-91b6-a52cdee16ebc/?i=true

 import csv import json # Constants to make everything easier CSV_PATH = './csv.csv' JSON_PATH = './json' # Reads the file the same way that you did csv_file = csv.DictReader(open(CSV_PATH, 'r')) # Created a list and adds the rows to the list json_list = [] for row in csv_file: json_list.append(row) # Writes the json output to the file file(JSON_PATH, 'w').write(json.dumps(json_list)) 

Convertir CSV a Json Python

 import csv import urllib2 url = '' response = urllib2.urlopen(url) cr = csv.reader(response) line = {} data = [] for index, row in enumerate(cr): if index: for index, col in enumerate(row): line[name[index]] = col data.append(line.copy()) else: name = row print data 

Puedes intentarlo utilizando este código:

 def inputfunction(lists): tmpdict = {} for element_index in range(len(lists)): tmpdict[headers[elementindex]] = lists[element_index] return tmpdict def run(filename): filelist = [eachline.split(',') for eachline in open(inputfile,'r')] headers = filelist[0] values = filelist[1:] finallist = [] for lists in values: finallist.append(inputfunction(lists)) return finallist