Python 测开27期 - WL - 学习笔记 - python 内置库 json

python 内置库 json

JSON

  • JSON是用于存储和交换数据的语法,是一种轻量级的数据交换格式
  • 使用场景
    ** 接口数据传输
    ** 序列化
    ** 配置文件

JSON 结构

  • 键值对形式
  • 数组形式
    image

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}