CSV to json

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
BaseFloor
User
Beiträge: 25
Registriert: Donnerstag 16. November 2017, 11:06

ich möchte eine CSV Datei mittels Python 3 in ein json Format bringen. ich habe bereits folgenden Code:


import csv
import json

# Pfade
CSV_PATH = '.C:User\\Test.csv'
JSON_PATH = 'C:User\\\Test.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))


Es wird mir bei der letzten Zeile ein Fehler angezeigt. file(JSON_PATH, 'w').write(json.dumps(json_list)).
name 'file' is not defined.

kann ich nicht direkt wie in der dritten Zeile beim JSON PATH einfach einen Pfad und .json deklarieren?
Oder wo ist der Fehler ?
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@BaseFloor: warum benutzt Du überhaupt `file`? Das gibt es mit Python 3 nicht mehr. Dateien die man öffnet, sollte man auch wieder schließen. Die Dateipfade sehen seltsam aus.

Code: Alles auswählen

import csv
import json

# Pfade
CSV_PATH = 'C:/User/Test.csv'
JSON_PATH = 'C:/User/Test.json'

with open(CSV_PATH, 'r') as csv_file:
    csv_file = csv.DictReader(csv_file)
    data = list(csv_file)

with open(JSON_PATH, 'w') as output:
    json.dump(json_list, output)
BaseFloor
User
Beiträge: 25
Registriert: Donnerstag 16. November 2017, 11:06

ach das hat da natürlich nichts zu suchen. Die Pfade muss man so angeben, wenn man Python unter Windows verwendet.
Vielen Dank.
bb1898
User
Beiträge: 199
Registriert: Mittwoch 12. Juli 2006, 14:28

BaseFloor hat geschrieben:Die Pfade muss man so angeben, wenn man Python unter Windows verwendet.
Muss man nicht mehr. Wenn ein Windows so alt ist, dass es "/" als Pfadtrenner noch nicht schluckt, dann vermute ich sehr, dass es auch mit Python 3 nichts anfangen kann. Und wenn man doch lieber "\" benutzt, dann besser in Raw Strings:

Code: Alles auswählen

CSV_PATH = r'C:User\Test.csv'
Antworten