一.json模块
作用:
用于【字符串】和 【python基本数据类型】 间进行转换
Python的Json模块序列化与反序列化的过程分别是 encoding和 decoding。
encoding 把一个Python对象编码转换成Json字符串;decoding 把Json格式字符串解码转换成Python对象。
与pickle区别:
json是可以在不同语言之间交换数据的,而pickle只在python之间使用
json只能序列化最基本的数据类型,而pickle可以序列化所有的数据类型,包括类,函数都可以序列化
函数:
dump --序列化python数据类型对象为JOSN格式的类文件对象,dump 列表-》字符串 -》 类文件对象
load --从josn类文件对象中反序列为PYTHON数据类型对象, 打开文件=》读取内容=》python数据类型如(列表、字典)
dumps --序列化python数据类型对象为字符串格式的josn对象,python数据类型如(列表、字典)-》JOSN字符串
loads --将josn字符串反序列化为PYTHON数据类型,josn字符-》python数据类型如(列表、字典)
举例:
import josn #序列化PYTHON数据类型为JSON格式的类文件并写入 dic = {'k1':1,'k2':2} json.dump(dic,open('db','w')) #从类文件中反序列化为python数据对象 r = json.load(open('db','r')) print(r)
import json #将PYTHON对象序列化为字符串格式的JOSN对象 li = ["a","b","c"] result = json.dumps(li) print(result,type(result))
#运行结果
["a", "b", "c"] <class 'str'>
import json li = '[1,2,3,4]' #将字符串反序列化为python数据对象 result = json.loads(li) print(result,type(result))
#运行结果
[1, 2, 3, 4] <class 'list'>
注:反序列化时注意字典内部要使用双引号 ("")
2. 正常显示json内容
JSON是一个很棒的序列格式,如今广泛应用在API和web服务中,但是很难用裸眼来看大数据量的JSON,它们很长,还在一行里。
可以用参数 indent 来更好地打印JSON数据,这在跟 REPL或是日志打交道的时候很有用:
>>> import json >>> print(json.dumps(data)) # No indention {"status": "OK", "count": 2, "results": [{"age": 27, "name": "Oz", "lactose_intolerant": true}, {"age": 29, "name": "Joe", "lactose_intolerant": false}]} >>> print(json.dumps(data, indent=2)) # With indention { "status": "OK", "count": 2, "results": [ { "age": 27, "name": "Oz", "lactose_intolerant": true }, { "age": 29, "name": "Joe", "lactose_intolerant": false } ] }
二.configparser
作用:
configparser用于处理特定格式的文件,其本质上是利用open来操作文件
指定格式:
# 注释1 ; 注释2 [section1] # 节点 k1 = v1 # 值 k2:v2 # 值 [section2] # 节点 k1 = v1 # 值 指定格式