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更新,谢谢 –