文章目录
- 前言:
- 一、JSON使用
- 1.导入json的包
- 2.常用的方法
- 二、实战
- 1.json.loads()
- 2.jsonpath
前言:
- 我们经常会用到json数据,json数据格式主要是用来和不同语言之间进行交互
- 比如你要给java端的提供数据,你需要将自己的数据转换为json格式才行
- 所以不管是提供给后端其他人,还是从API返回的数据结果,我们都需要封装成json数据格式或者解析json数据
- json的数据格式类似于python中的字典,都是key:value,当然value也可以是数组的格式
一、JSON使用
1.导入json的包
import json
2.常用的方法
函数 | 描述 |
---|---|
json.dumps | 将python的数据转为json格式提供出去 |
json.loads | 将json格式数据解析为python格式 |
举例:
json.loads()
import json
strDict = '{"city": "广州", "name": "小黑"}'
print(type(strDict)) #<class 'str'>
# 将json格式数据转换为python格式,可以看出将str还原为了dict格式
r = json.loads(strDict)
print(r,type(r)) # {'city': '广州', 'name': '小黑'} <class 'dict'>
json.dumps()
import json
listStr = [1, 2, 3, 4]
dictStr = {"city": "北京", "name": "大猫"}
print(type(listStr)) # <class 'list'>
print(type(dictStr)) #<class 'dict'>
# 将python数据转为json格式,可以看出转换后的数据类型均变为了str
s1 = json.dumps(listStr)
s2 = json.dumps(dictStr,ensure_ascii=False)
print(s1,type(s1)) # [1, 2, 3, 4] <class 'str'>
print(s2,type(s2)) # {"city": "北京", "name": "大猫"} <class 'str'>
二、实战
1.json.loads()
json的数据格式如下
{
"animals": {
"dog": [
{
"name": "Rufus",
"age":15
},
{
"name": "Marty",
"age": null
}
]
}
}
我们想要取出json格式中所有狗的名字:
load_data = json.loads(dump_data)
data = load_data['animals']['dog']
result1 = []
for i in data:
result1.append(i.["name"])
print(result1)
运行结果
['Rufus', 'Marty']
2.jsonpath
如果用jsonpath工具如何取数呢?
load_data = json.loads(dump_data)
jobs=load_data['animals']['dog']
result2 = []
for i in data:
# 从根节点开始,匹配name节点
result2.append(jsonpath.jsonpath(i,'$..name')[0])
print(result2)