关于json.dumps中的参数详解
2023-03-20 15:27:43 时间
例子如下:
import json
import numpy as np
class MyEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, np.ndarray):
return obj.tolist()
elif isinstance(obj, bytes):
return str(obj, encoding='utf-8');
return json.JSONEncoder.default(self, obj)
dict = {'id': 1, 'title': b'xe7xacxacxe4xb8x80xe7xabxa0 xe7xa7xa6xe7xbexbd'}
dup = json.dumps(dict, cls=MyEncoder, ensure_ascii=False, indent=4)
print(dup)
indent
根据数据格式缩进显示,读起来更加清晰,indent的数值,代表缩进的位数。
ensure_ascii
如果无任何配置,或者说使用默认配置, 输出的会是中文的ASCII字符吗,而不是真正的中文。 这是因为json.dumps 序列化时对中文默认使用的ascii编码。
{
"id": 1,
"title": "u7b2cu4e00u7ae0 u79e6u7fbd"
}
cls
dict类型的数据(存在中文),在python2中是可以转化的,但是在python3中存在序列化问题:
TypeError: Object of type bytes is not JSON serializable
相关文章
- 暗渡陈仓:用低功耗设备进行破解和渗透测试
- Linux中显示系统中USB信息的lsusb命令
- Linux 基础命令 – watch
- Linux中命令链接操作符的十个最佳实例
- 嵌入式操作系统风云录:历史演进与物联网未来.
- 如何在 Linux 中生成全景照片
- 实例学习 Linux 的 cd 命令,及对内部命令的解释
- ROS机器人程序设计(原书第2版).
- 在Debian 7/Ubuntu 13.10 上使用隧道封装SSH连接
- Debian/Ubuntu系统中安装和配置UFW-简单的防火墙
- 如何在Linux下统计高速网络中的流量
- 使用ownCloud在Linux安装你的个人云服务
- 即学即用:Pandas入门与时间序列分析
- 预测分析:R语言实现.
- Ceph分布式存储实战.
- Docker技术入门与实战(第2版).
- 跟老男孩学Linux运维:Shell编程实战.2
- 戴文的Linux内核专题:15 配置内核 (11)
- 十大顶级的黑客级Linux发行版!
- 十个鲜为人知的Linux命令 - Part 5