Ia имеют следующий контейнер данных, которая постоянно обновляется:UnicodeEncodeError: «ASCII» кодек не может кодировать
data = []
for val, track_id in zip(values,list(track_ids)):
#below
if val < threshold:
#structure data as dictionary
pre_data = {"artist": sp.track(track_id)['artists'][0]['name'], "track":sp.track(track_id)['name'], "feature": filter_name, "value": val}
data.append(pre_data)
#write to file
with open('db/json/' + user + '_' + product + '_' + filter_name + '.json', 'w') as f:
json.dump(data,f, ensure_ascii=False, indent=4, sort_keys=True)
, но я получаю много ошибок, как это:
json.dump(data,f, ensure_ascii=False, indent=4, sort_keys=True) File"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 190, in dump fp.write(chunk)
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2019' in position 6: ordinal not in range(128)
Есть ли способ избавиться от этой проблемы кодирования раз и навсегда?
мне сказали, что это будет сделать это:
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
но многие люди не рекомендуют.
Я использую python 2.7.10
любые улики?
Показать полную ошибку, чтобы мы могли видеть, откуда исходит ошибка. И этот Python 2 или 3? –
'sys.setdefaultencoding', возможно, работал в Python2, но не существует в Python3. И он может работать с 'print()', но не с другим, как запись в файл, поэтому вам нужно показать полное сообщение об ошибке и строку, которая создает проблему. – furas
@MarkRansom обновлен, спасибо –