我正在用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/

10-14 10:22
查看更多