在python中使用json会存在编码问题,需要引起注意。
json.dumps(your_dict)
json.dumps默认按utf-8来对放入的字符串进行解码后输出。
因此需要注意进行dump的字符串编码格式需要确定。

json.loads(your_str)
json
在python中直接使用json.loads(your_str)的方式,不管your_str是什么编码,都会被转换成unicode的格式。
因此想要得到结果,需要自行转换一下。

转换代码:
def unicode_convert(input_data, encode="utf-8"):
"""
json.loads会默认将字符串解析成unicode,因此需要自行转换为想要的格式
"""
if isinstance(input_data, dict):
return {unicode_convert(key, encode): unicode_convert(value) for key, value in input_data.iteritems()}
elif isinstance(input_data, list):
return [unicode_convert(element, encode) for element in input_data]
elif isinstance(input_data, unicode):
return input_data.encode(encode)
else:
return input_data

博客指出在Python中使用JSON会存在编码问题。json.dumps默认按utf - 8对字符串解码后输出,进行dump的字符串编码格式需确定;json.loads会将字符串转换成unicode格式,若要得到结果需自行转换,并给出转换代码。

1238

被折叠的 条评论
为什么被折叠?



