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 ?
CSV to json
@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)
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:BaseFloor hat geschrieben:Die Pfade muss man so angeben, wenn man Python unter Windows verwendet.
Code: Alles auswählen
CSV_PATH = r'C:User\Test.csv'