【发布时间】:2012-06-21 22:22:45
【问题描述】:
使用 python 解析时的以下消息给出以下错误。消息来自 json 文件 消息:
"Daca nu il stiti déjà, cu siguranta o sa va smulga un zambet. O portie de motivatie pentru toata lumea. :)",
错误:
Traceback (most recent call last):
File "C:\Users\X\Desktop\store_post.py", line 328, in <module>
post_l_1 =jsonToPost.return_post_list(data2)
File "C:\Users\X\Desktop\jsonToPost.py", line 20, in return_post_list
post_message = json.dumps(read_,sort_keys = True, indent =2,skipkeys=True)
File "C:\Python27\lib\json\__init__.py", line 238, in dumps
**kw).encode(obj)
File "C:\Python27\lib\json\encoder.py", line 195, in encode
return encode_basestring_ascii(o)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xe9 in position 18: invalid continuation byte
相关代码sn-p为:
post_message = json.dumps(read_,sort_keys = True, indent =2,skipkeys=True)
post_message = json.loads(post_message)
【问题讨论】:
-
"If you do not already know, certainly I will elicit a smile. A serving of motivation for everyone. :)" -
post_message = json.dumps(read_,ensure_ascii= False, sort_keys = True, indent =2,skipkeys=True)post_message = json.loads(post_message, encoding= 'utf-16')我们尝试了这个,它对这个数据有效,但对正常的 ascii 数据有问题。 -
read_来自哪里? -
它是一个包含消息的字符串,我们想将其转换为ascii,然后将其转储到数据库中