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数据 , 文件保存地址 )
import json
data = [ { 'a':'A', 'b':(2, 4), 'c':3.0 } ]
# 将对象以json格式保存到json_test.json文件中
json.dump(obj=data, fp=open('json_test.json', 'w'))
可选参数ensure_ascii:
# ensure_ascii=False 表示字符会以原始格式存入
# 默认为True表示以ascii格式存入
json.dump(obj=dict_example, fp=open('testDir/json_test2.json', 'w', encoding='utf-8'), ensure_ascii=False)
可选参数indent:
# indent=4 表示以4个空格为缩进单位在适当的位置进行缩进排版处理,
# 便于浏览,默认为None表示以最紧凑的方式存入
json.dump(obj=dict_example, fp=open('testDir/json_test3.json', 'w'), indent=4)
可选参数separators:
# separators需要传入一个两个单位的元组(item_sep, key_sep)作为分隔符,
# 默认为(': ',','),该参数不建议自定义
data = {'key1':'value1', 2:[2,2,2,2], (3):"测试值"}
json.dump(obj=data, fp=open('json_test.json', 'w'), indent=4, separators=('=','#'))
可选参数sort_keys:
# sort_keys=True代表传入的字典将按照键值进行排序
data = [ { 'a':'A', 'b':(2, 4), 'c':3.0 } ]
json.dump(obj=data, fp=open('json_test.json', 'w'), indent=4, sort_keys=True)
.dumps(obj) 生成json格式数据
json.dumps()方法的参数与json.dump()一致,唯一不同的是该方法会将结果以str的格式返回,而并不会传入一个IO流中
import json
data = [ { 'a':'A', 'b':(2, 4), 'c':3.0 } ]
print(json.dumps(obj = data))
.load(fp) 加载json文件
文件
jsonstr = json.load(open('json_test.json', 'r'))
print(jsonstr)
.loads() 转python对象
将存放json格式的str对象解析为python对象
data = { 'a':'A', 'b':100, 'c':3.0 }
print(type(data)) # <class 'dict'> 字典类型
data = json.dumps(data)
print(type(data)) # <class 'str'> 转成 字符串类型
jsonstr = json.loads(data) # <class 'dict'> 字典类型