python2中json编码的坑

在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

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值