python 内置库 json
JSON
- JSON是用于存储和交换数据的语法,是一种轻量级的数据交换格式
- 使用场景
** 接口数据传输
** 序列化
** 配置文件
JSON 结构
- 键值对形式
- 数组形式
python 与 JSON 数据类型对应
Python |
JSON |
说明 |
dict |
object |
字典 |
list,tuple |
array |
序列 |
str |
string |
字符串 |
int,float |
number |
数字类型 |
True |
true |
布尔值True |
False |
false |
布尔值False |
None |
null |
空值 |
JSON 库
- 可以从字符串或文件中解析JOSN
- 该库解析JSON后将其转为 Python 字典或列表
常用方法
- dumps():将Python对象编码成JSON字符串
- loads():解码JSON数据,该函数返回Python对象
- dump():Python对象编码,并将数据写入json文件中
- load():从json文件中读取数据并解码为Python对象
dumps 常用参数
- ensure_ascii若有中文需要是false,默认是true
- indent控制缩进的空格数量,默认None没有
示例
import json
# 定义python结构
dd = {
'a':1,
'b':[1,2,3],
'c':True,
'd':False,
'e':'this',
'f':None,
'g':'中问的'
}
# 将python对象编码为 json字符串
json_data = json.dumps(dd, ensure_ascii=False,indent=4)
# 参数:ensure_ascii若有中文需要是false,默认是true,indent控制缩进的空格数量,默认None没有
print(json_data)
# 结果是:{"a": 1, "b": [1, 2, 3], "c": true, "d": false, "e": "this", "f": null}
# 定义 json字符串
json2 = '''{"a": 1, "b": [1, 2, 3], "c": true, "qq": false, "rr": "this", "ww": null}'''
# 将json字符串编码为 python 对象
pyd=json.loads(json2)
print(pyd)
# 结果是:{'a': 1, 'b': [1, 2, 3], 'c': True, 'qq': False, 'rr': 'this', 'ww': None}
# 把python对象转化为json字符串写入json文件
with open('data.json','w') as ff:
json.dump(dd,ff)
# 读取json文件并转为python对象
with open('data.json','r',encoding='utf-8') as fff:
cc = json.load(fff)
print(cc)
# 结果是: {'a': 1, 'b': [1, 2, 3], 'c': True, 'd': False, 'e': 'this', 'f': None}