Python içinde UTF-8 dosyası işlenirken ediyorum ve bir sözlüğe içine yüklemek için simplejson kullandık.Python: Bir UTF-8 dosyasından bazı metinlerde str() neden bir UnicodeDecodeError verir?
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)
Neden Python bile ASCII kullanıyor: Ben bir dizeye sözlük değerlerinden birini açmak çalıştığınızda Ancak, ben bir UnicodeDecodeError alıyorum? Varsayılan olarak UTF-8 kullandığını ve girişin UTF-8 dosyasından olduğunu düşündüm.
$ file my_json.json
my_json.json: UTF-8 Unicode English text
Sorun nedir?
import sys
sys.setdefaultencoding("utf-8")
her şeyi istemiyorsanız bu istenmeyen sonuçlara yol açabilir varsayılan olarak unicode edilecek: bu işi yapmak için
teşekkür: Bir
unicode
str
bir dönüşmesini istiyorsanızunicode.encode()
kullanın! sözlükte tüm öğeleri kodlamak için yaptım: k için v_dict.iteritems() v: eğer v_dict [k]: v_dict [k] = v_dict [k] .encode ('utf-8') – AP257