前面一篇文章简单了解了下 JSON 基础,本篇文章学习下 Python 如何处理 JSON,然后介绍下自动化中如何使用 JSON 文件做配置文件。
Python 3.x 版本自带JSON 模块,不需要自己安装。
一、JSON 模块
- json: 用于字符串和python数据类型间进行转换
- json模块提供了四个功能:dumps、dump、loads、load
dump 有卸下的意思,Python dump 卸下,编码成 JSON
load 有加载的意思,JSON load 加载,解码成 Python
import json dict1 = {"name":"storm","age": 30} print(dict1) print(type(dict1)) j1 = json.dumps(dict1) print(j1) print(type(j1))运行结果
{'name': 'storm', 'age': 30}
{"name": "storm", "age": 30}
2、dump: 将字典 转换为 字符串, 并写入json文件中
import json dict1 = {"name":"storm","age": 30} print(dict1) print(type(dict1)) with open("1.txt","w") as f: j1 = json.dump(dict1,f) print(j1) print(type(j1))运行结果:
控制台输出如下:
{'name': 'storm', 'age': 30}
None
另外生成一个文件1.txt,存储的内容为:
{"name": "storm", "age": 30}
分析:dump 将转换直接存到了文件 1.txt 中,并没有存到变量 j1 中,所以 j1 打印是 None
3、loads: 将 字符串 转换为 字典
import json str1 = '{"name":"storm","age": 30}' print(str1) print(type(str1)) dic = json.loads(str1) print(dic) print(type(dic))运行结果:
{"name":"storm","age": 30}
{'name': 'storm', 'age': 30}
4、load:把文件打开,并把字符串变换为数据类型
我们读取一下前面保存的文件 1.txt
import json with open("1.txt",'r') as f: print(type(f)) dic = json.load(f) print(dic) print(type(dic))运行结果
{'name': 'storm', 'age': 30}
二、应用
1、读取字典类型的数据文件
login.json文件内容如下:
{ "user1":{"name":"storm","password":"123456"}, "user2":{"name":"duzl","password":"123123"} }
读取其中的内容
import json file = "login.json" with open(file,'r') as f: users = json.load(f) print(type(f)) print(type(users)) print(users) for user in users: name = users[user]['name'] password = users[user]['password'] print(name,password)运行结果
{'user1': {'name': 'storm', 'password': '123456'}, 'user2': {'name': 'duzl', 'password': '123123'}}
storm 123456
duzl 123123
2、读取列表类型的数据文件
arr.json 文件
[ { "name":"storm", "age":30 }, { "name":"lina", "age":22 } ]Python文件
import json file = "arr.json" with open(file,'r') as f: ss = json.load(f) for s in ss: print(s) print(s["name"]) print(s["age"])运行结果:
{'name': 'storm', 'age': 30}
storm
30
{'name': 'lina', 'age': 22}
lina
22