我正在用Python处理UTF-8文件,并已使用simplejson将其加载到字典中。但是,当我尝试将其中一个字典值转换为字符串时,出现UnicodeDecodeError:
f = open('my_json.json', 'r')
master_dictionary = json.load(f)
#some json wrangling, then it fails on this line...
mysql_string += " ('" + str(v_dict['code'])
Traceback (most recent call last):
File "my_file.py", line 25, in <module>
str(v_dict['code']) + "'), "
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf4' in position 35: ordinal not in range(128)
为什么Python甚至使用ASCII?我认为默认情况下使用UTF-8,而输入来自UTF-8文件。
$ file my_json.json
my_json.json: UTF-8 Unicode English text
问题是什么?
最佳答案
Python 2.x默认使用ASCII。如果要将unicode.encode()
转换为unicode
,请使用str
:
v_dict['code'].encode('utf-8')
关于Python:为什么对UTF-8文件中的某些文本使用str()会给出UnicodeDecodeError?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2554545/