我再次进入那该死的unicode-hell ...叹气=(
有两个文件:
$ file *
kreise_tmp.geojson: ASCII text
pandas_tmp.csv: UTF-8 Unicode text
我读了这样的第一个文件:
with open('kreise_tmp.geojson') as f:
jdata = json.loads(f.read())
我读了第二个文件:
pandas_data = pd.read_csv(r'pandas_tmp.csv', sep=";")
现在查看字符串中的内容:
>>> jdata['features'][0]['properties']['name']
u'Kreis Euskirchen' # a unicode string?
>>> pandas_data['kreis'][0]
'Kreis D\xc3\xbcren' # not a unicode string?
为什么“UTF-8 Unicode text”文件中的字符串只是普通字符串而“ASCII text”文件中的字符串是unicode字符串?
答案 0 :(得分:2)
JSON字符串始终是Unicode。
with Client() as client:
x.compute()
但它们通常使用~$ python2
>>> import json
>>> json.loads('"\xc3\xbc"')
u'\xfc'
转义序列化,因此\u
只会看到ASCII。
file
答案 1 :(得分:0)
将encoding='utf-8'
添加到文件的开头,使用utf-8
pandas_data = pd.read_csv(r'pandas_tmp.csv', sep=";", encoding='utf8')
您也可以使用JSON
with open('kreise_tmp.geojson', encoding='utf8') as f:
jdata = json.loads(f.read())
同样在Python 2.7中,您可以将其添加到文件的顶部..
#!/usr/bin/env python
# -*- coding: utf-8 -*-