Encore une fois j'entre ce putain unicode-enfer ... sigh = (Unicode confusion # 3423435
Il y a deux fichiers:
$ file *
kreise_tmp.geojson: ASCII text
pandas_tmp.csv: UTF-8 Unicode text
J'ai lu le premier fichier comme ceci:
with open('kreise_tmp.geojson') as f:
jdata = json.loads(f.read())
J'ai lu le deuxième fichier comme ceci:
pandas_data = pd.read_csv(r'pandas_tmp.csv', sep=";")
maintenant vérifier ce qui est dans les cordes:
>>> jdata['features'][0]['properties']['name']
u'Kreis Euskirchen' # a unicode string?
>>> pandas_data['kreis'][0]
'Kreis D\xc3\xbcren' # not a unicode string?
Pourquoi les chaînes du « texte Unicode UTF-8 » fichier seulement des chaînes normales et les chaînes de la chaînes unicode de fichiers « texte ASCII »?
Veuillez joindre 'hexdump' de' kreise_tmp.geojson' et 'pandas_tmp.csv'. Notez également que, par spécification, le format json ne peut pas contenir de symboles non asci. Donc json contient probablement le même '\ xc3' mais il se charge dans' ü'. Je suppose que vous devez spécifier l'encodage - utf8 lors de l'ouverture du fichier, vérifiez si 'pd.read_csv' contient un paramètre d'encodage, si vous n'avez pas besoin de convertir manuellement' bytes' en utf8. – deathangel908
Quelle version de Python? Essayez de mettre à jour vers Python 3.6. –
@ deathangel908 JSON peut contenir des symboles non-ASCII très bien. http://json.org/ - "* Tout caractère UNICODE * ..." – melpomene