这个错误通常是因为字符串中包含了非UTF-8编码的字符,而在Python中,JSON模块默认只支持UTF-8编码的字符串。为了解决这个问题,可以尝试以下几种方法:
- 将字符串转换为UTF-8编码:可以使用
str.encode()
方法将字符串转换为UTF-8编码的字节串,然后再使用json.loads()
方法将其转换为JSON格式。示例代码如下:
import json
str_data = "{'name': '张三', 'age': 18}"
json_data = json.loads(str_data.encode('utf-8'))
- 使用
ensure_ascii=False
参数:可以在调用json.dumps()
方法时,传入ensure_ascii=False
参数,这样就可以支持非UTF-8编码的字符。示例代码如下:
import json
str_data = "{'name': '张三', 'age': 18}"
json_data = json.dumps(str_data, ensure_ascii=False)
- 修改字符串中的非UTF-8编码字符:如果字符串中包含非UTF-8编码字符,可以尝试将其修改为UTF-8编码的字符,或者使用Unicode编码替代。比如,将字符串中的中文字符修改为Unicode编码,示例代码如下:
import json
str_data = "{'name': '\u5f20\u4e09', 'age': 18}"
json_data = json.loads(str_data)
其中,\u5f20\u4e09
是中文字符“张三”的Unicode编码。
微信扫描下方的二维码阅读本文