python内置库--json
关于json
JSON 是一种按照 JavaScript 对象语法的数据格式
相关介绍
https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/Objects/JSON
很多网页和app前后端数据交换的数据的格式就是json,打开F12或者抓包工具就可以看到
py的json模块常用函数相关函数介绍
json.dumps(): 根据py对象和json间的转换表,把一个py对象编码为json字符串
json.loads(): 根据py对象和json间的转换表,把一个json字符串解析为py对象
下面是py对象和json类型的对照表
dumps()相关参数:
json.dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
-
skipkeys: 是 true (默认为 False),则字典中不是基本对象(包括 str, int、float、bool、None)的键会被跳过,否则引发一个 TypeError
-
ensure_ascii:默认true,非 ASCII 字符转义会被转义处理。False, 则会原样输出。 所以如果有中文的时候,要设为False
-
allow_nan: 默认为true,则一些float类型的值(Nnan, inf, -inf)会输出为在 JavaScript 等价形式(NaN、Infinity 和 -Infinity)。 为false, 则会引发一个ValueError
-
indent: 为一个非负整数或字符串,则其数据中的每一层级会按照设定的值缩进显示,看起来更加直观。 默认值为None,会全部数据显示在一堆。 如果缩进等级为零、负数或者 "",则只会添加换行符。
-
separators: 分隔符的意思,一个 (item_separator, key_separator) 元组。当 indent 为 None 时,默认值取 (', ', ': '),否则取 (',', ': ')。
其实就是原先字典中的两个分隔符(, 和 :)要不要加空格, 如设定为(',', ':')这样分隔符两边完全没有空格 -
sort_keys:默认为False,不会改变字典中数据的先后顺序,为Trur时,会比较字典中key的顺序,输出时按照比较后新的顺序输出
执行结果
其它参数参见官网文档:https://docs.python.org/3/library/json.html
json.dump(): 根据py对象和json间的转换表,把一个py对象转换成json格式流数据,然后python file-like object的write()方法可把json流数据写入文件
json.load(): 和dump()相反,结合python file-like object的read()方法可把json文件内容读取为一个py对象
处理文件中的json()内容 dump()和load()
直接处理json字符串相关用dumps() 和loads()
执行后,可在执行目录下生成一个json文件
封装一个json类
参照jsonschema的格式规范,我们可以自己写一个json文件,该json文件表明要验证的json文件需要满足的格式,然后利用jsonschema相关函数来验证json文件,若未通过验证,说明格式不符合自定义的json格式规范,会抛出异常jsonschema.exceptions.ValidationError
my_schema.json的内容意思,是说要验证的json文件内容应该是一个数组
jsonschema的相关介绍
https://python-jsonschema.readthedocs.io/en/latest/
https://json-schema.apifox.cn/
执行
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南