Seite 1 von 1

CSV to json

Verfasst: Montag 27. November 2017, 10:17
von BaseFloor
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 ?

Re: CSV to json

Verfasst: Montag 27. November 2017, 10:27
von Sirius3
@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)

Re: CSV to json

Verfasst: Montag 27. November 2017, 12:43
von BaseFloor
ach das hat da natürlich nichts zu suchen. Die Pfade muss man so angeben, wenn man Python unter Windows verwendet.
Vielen Dank.

Re: CSV to json

Verfasst: Montag 27. November 2017, 12:49
von bb1898
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'