python3中json模块中dump dumps 乱码问题

python3中json模块中dump dumps 乱码问题

json.dump json.dumps 中可以把一些内置的对象序列化为json 对象, 一个是dump 到文件,一个是转成字符串。

现象描述

但是如果字符串中有 中文字符,默认dumps 会把中文 转成 下面的字符

import json

sentence= "中文 frank 123"

json.dumps(sentence)

结果如下:

'"\\u4e2d\\u6587 frank 123"'

在python3 默认使用 UTF-8 编码方式。 中文 就被编码成 4e2u 6587


解决方法

添加参数, ensure_ascii = False

json.dumps(sentence,ensure_ascii=False)
'"中文 frank 123"'

官方文档如下:

If ensure_ascii is true (the default), the output is guaranteed to have all incoming non-ASCII characters escaped. If ensure_ascii is false, these characters will be output as-is.

如果 ensure_ascii 是 true (即默认值),输出保证将所有输入的非 ASCII 字符转义。如果 ensure_ascii 是 false,这些字符会原样输出。




json 官方文档

字符编码笔记:ASCII,Unicode 和 UTF-8

计算机编码ASCII、GBK、Unicode、UTF-8和URL编码的区别

python模块的使用 json模块


分享快乐,留住感动. '2021-07-26 21:38:02' --frank
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值