Wieder einmal gebe ich, dass goddamn Unicode-Hölle ... seufz = (Unicode Verwirrung # 3423435
Es gibt zwei Dateien:
$ file *
kreise_tmp.geojson: ASCII text
pandas_tmp.csv: UTF-8 Unicode text
las ich die erste Datei wie folgt aus:
with open('kreise_tmp.geojson') as f:
jdata = json.loads(f.read())
las ich die zweite Datei wie folgt:
pandas_data = pd.read_csv(r'pandas_tmp.csv', sep=";")
nun prüfen, was in den Saiten ist:
>>> jdata['features'][0]['properties']['name']
u'Kreis Euskirchen' # a unicode string?
>>> pandas_data['kreis'][0]
'Kreis D\xc3\xbcren' # not a unicode string?
Warum sind die Strings aus der "UTF-8 Unicode Text" Datei nur normale Strings und die Saiten von dem "ASCII-Text" Datei Unicode-Strings?
Bitte 'hexdump' von' kreise_tmp.geojson' und 'pandas_tmp.csv' anhängen. Beachten Sie auch, dass das json-Format nach der Spezifikation keine asci-Symbole enthalten kann. So enthält Json wahrscheinlich das gleiche '\ xc3', aber es lädt in' ü'. Ich denke, Sie müssen Codierung angeben - utf8 beim Öffnen der Datei, überprüfen Sie, ob 'pd.read_csv' Codierung Param enthält, wenn es nicht manuell Byte in utf8 konvertieren müssen. – deathangel908
Welche Version von Python? Versuchen Sie, auf Python 3.6 zu aktualisieren. –
@ deathangel908 JSON kann Nicht-ASCII-Symbole enthalten. http://json.org/ - "* Any UNICODE character * ..." – melpomene