So habe ich diese csv, die Zeilen wie diese hat:Encoding csv-Dateien beim Öffnen mit Python
"41975","IT","Catania","2016-01-12T10:57:50+01:00",409.58
"538352","DE","Düsseldorf","2015-12-18T20:50:21+01:00",95.03
"V22211","GB","Nottingham","2015-12-31T11:17:59+00:00",872
Im aktuellen Beispiel das erste und das dritte Wort arbeiten gut, aber das Programm stürzt ab, wenn es Düsseldorf
druckt, die ü
ist problematisch
Ich möchte in der Lage sein, die Informationen aus dieser CSV-Datei zu bekommen und print
es zu können. Hier ist mein Code:
def load_sales(file_name):
SALES_ID = 0
SALES_COUNTRY = 1
SALES_CITY = 2
SALES_DATE = 3
SALES_PRICE =4
with open(file_name, 'r', newline='', encoding='utf8') as r:
reader = csv.reader(r)
result=[]
for row in reader:
sale={}
sale["id"]=row[SALES_ID]
sale["country"]=row[SALES_COUNTRY]
sale["city"]=row[SALES_CITY]
sale["date"]=row[SALES_DATE]
sale["price"]=float(row[SALES_PRICE])
result.append(sale)
wenn ich drucke drucke ich die result
erhalte ich:
File "C:\Anaconda3\lib\encodings\cp866.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\xfc' in position 384: character maps to <undefined>
Bisher habe ich versucht: Ändern der encoding
Wert in der Öffnungsfunktion mit utf-8
, UTF8
usw., Erstellen einer Druckfunktion:
def write_uft8(data):
print(data).encode('utf-8')
Aber das ist kein praktikabler Weg, wenn Sie Liste der Wörterbücher ausdrucken müssen.
Jemand sagte mir, dass das Problem ist, dass mein Python nicht eingestellt ist, um diese Nachrichten zu utf-8 zu verschlüsseln, ist das wahr und wie ändere ich es?
Dies aufgrund der Codierung der Eingabedatei/Daten auftreten können. Sind Sie sicher, dass die Daten als "utf-8" angegeben sind? Außerdem finden Sie hier eine vollständige Liste aller Kodierungen: https://docs.python.org/3.5/library/codecs.html#standard-encodings Ich würde vorschlagen, 'iso-8859-1' zu versuchen oder' 'zu verwenden Chardet-Modul, um die Dateicodierung automatisch zu erkennen. – albert
im Beispielsatz, Probleme auftreten nur in dem Wort Düsseldorf in der ü, alles andere ist in Ordnung –
Ihr Problem ist die Windows-cmd Sie den Code ausführen, nicht wegen Python –