在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