json模块:序列化反序列化、中文乱码、json文件读写实战
博客导语json是前后端、配置文件主流数据格式新手常遇到中文转义、元组序列化、日期无法序列化、缩进格式错乱四大问题本文全覆盖解决方案。一、四大核心方法区分dumps字典对象 -- json字符串内存转换loadsjson字符串 -- 字典对象内存转换dump字典对象 -- 写入json文件磁盘写入load读取json文件 -- 字典对象磁盘读取二、中文乱码终极解决默认dumps会将中文转为unicode转义字符添加ensure_asciiFalse关闭转义import json data {name:张三,age:20} # 中文正常显示格式化缩进 json_str json.dumps(data,ensure_asciiFalse,indent4)三、json文件标准读写# 写入json文件 with open(user.json,w,encodingutf-8) as f: json.dump(data,f,ensure_asciiFalse,indent4) # 读取json文件 with open(user.json,r,encodingutf-8) as f: res json.load(f)四、序列化限制与拓展json仅支持字典、列表、字符串、数字、布尔、None不支持元组、日期、自定义对象元组序列化后会转为列表不可逆自定义对象序列化需要传入default参数自定义转换规则