1. Python的标准库模块
常量、类或方法名 注解
json.dump 方法,传入一个python对象,将其编码为json格式后存储到IO流中
json.dumps 方法,传入一个python对象,将其编码为json格式后存储到str中
json.load 方法,传入一个json格式的文件流,将其解码为python对象
json.loads 方法,传入一个json格式的str,将其解码为python对象

.jump(obj,fp,…) 保存json文件

将json 数据存储为json格式的文件里
需要传入 2个参数
json.jump( json数据 , 文件保存地址 )

  1. import json
  2. data = [ { 'a':'A', 'b':(2, 4), 'c':3.0 } ]
  3. # 将对象以json格式保存到json_test.json文件中
  4. json.dump(obj=data, fp=open('json_test.json', 'w'))

image.png

可选参数ensure_ascii:

  1. # ensure_ascii=False 表示字符会以原始格式存入
  2. # 默认为True表示以ascii格式存入
  3. json.dump(obj=dict_example, fp=open('testDir/json_test2.json', 'w', encoding='utf-8'), ensure_ascii=False)

可选参数indent:

  1. # indent=4 表示以4个空格为缩进单位在适当的位置进行缩进排版处理,
  2. # 便于浏览,默认为None表示以最紧凑的方式存入
  3. json.dump(obj=dict_example, fp=open('testDir/json_test3.json', 'w'), indent=4)

image.png

可选参数separators:

  1. # separators需要传入一个两个单位的元组(item_sep, key_sep)作为分隔符,
  2. # 默认为(': ',','),该参数不建议自定义
  3. data = {'key1':'value1', 2:[2,2,2,2], (3):"测试值"}
  4. json.dump(obj=data, fp=open('json_test.json', 'w'), indent=4, separators=('=','#'))

image.png

可选参数sort_keys:

  1. # sort_keys=True代表传入的字典将按照键值进行排序
  2. data = [ { 'a':'A', 'b':(2, 4), 'c':3.0 } ]
  3. json.dump(obj=data, fp=open('json_test.json', 'w'), indent=4, sort_keys=True)

image.png

.dumps(obj) 生成json格式数据

json.dumps()方法的参数与json.dump()一致,唯一不同的是该方法会将结果以str的格式返回,而并不会传入一个IO流中

  1. import json
  2. data = [ { 'a':'A', 'b':(2, 4), 'c':3.0 } ]
  3. print(json.dumps(obj = data))

image.png

.

.load(fp) 加载json文件

文件
image.png

  1. jsonstr = json.load(open('json_test.json', 'r'))
  2. print(jsonstr)

image.png

.loads() 转python对象

将存放json格式的str对象解析为python对象

  1. data = { 'a':'A', 'b':100, 'c':3.0 }
  2. print(type(data)) # <class 'dict'> 字典类型
  3. data = json.dumps(data)
  4. print(type(data)) # <class 'str'> 转成 字符串类型
  5. jsonstr = json.loads(data) # <class 'dict'> 字典类型