Essayer de convertir le fichier CSV en fichier JSON aussi simplement que possible tout en ajoutant un nœud racine. Pour une raison quelconque, le fichier JSON omet au moins la dernière ligne (dans certains cas jusqu'à 4 lignes) à partir de la fin du fichier CSV. Que se passe t-il ici?La conversion de CSV en JSON omet la dernière rangée?
Exemple CSV
name, id, tag
John, 12345, father
Mary, 33456, sister
Beth, 56789, daughter
de JSON désiré
{"node": "", "children": [
{"name": "John", "id": 12345, "tag": "father"},
{"name": "Mary", "id": 33456, "tag": "sister"},
{"name": "Beth", "id": 56789, "tag": "daughter"}
]}
Ce que je veux:
{"node": "", "children": [
{"name": "John", "id": 12345, "tag": "father"},
{"name": "Mary", "id": 33456, "tag": "sister"},
]}
Mon code:
csvfile = open('file.csv', 'r')
jsonfile = open('file.json', 'w')
reader = csv.DictReader(csvfile)
jsonfile.write('{"node": "", "children": [')
for row in reader:
json.dump(row, jsonfile)
#jsonfile.write(',\n')
jsonfile.write('] }')
P.S. Je sais que j'ajoute une virgule sur la dernière ligne du fichier JSON - j'aimerais aussi savoir comment ajouter la virgule après tout sauf la dernière rangée, mais c'est moins important.
Cela est beaucoup plus serré le code - merci pour cela - mais il ne semble pas résoudre le problème!. La dernière ligne du fichier csv est toujours omise ou, dans certains cas, remplace certaines valeurs par "null" (malgré la valeur apparaissant très bien dans le fichier CSV), puis omet les lignes qui le suivent. –