掌握JSON数据的处理方法
课程位置:07.处理数据的方法.pdf - 7.1 JSON和JSONPath
JSONPath语法:
$ - 根节点. - 子节点[] - 数组访问* - 通配符[*] - 所有数组元素API接口:https://req.haleibc.com/api/practice7/data
该接口返回一个复杂的JSON数据结构,包含图书商城信息。
方法1:使用response.json()
import requests
url = 'https://req.haleibc.com/api/practice7/data'
response = requests.get(url)
# 直接解析JSON
data = response.json()
print(data)
# 访问数据
store = data['data']['store']
print(f"商店名称:{store['name']}")
print(f"城市:{store['location']['city']}")
# 遍历图书
for book in store['books']:
print(f"{book['title']} - {book['author']} - ¥{book['price']}")
方法2:使用jsonpath提取
import requests
from jsonpath import jsonpath
url = 'https://req.haleibc.com/api/practice7/data'
response = requests.get(url)
data = response.json()
# 提取所有书名
titles = jsonpath(data, '$.data.store.books[*].title')
print("所有书名:", titles)
# 提取所有作者
authors = jsonpath(data, '$.data.store.books[*].author')
print("所有作者:", authors)
# 提取所有价格
prices = jsonpath(data, '$.data.store.books[*].price')
print("所有价格:", prices)
# 提取所有标签
tags = jsonpath(data, '$.data.store.books[*].tags[*]')
print("所有标签:", tags)
方法3:使用json.loads()
import requests import json url = 'https://req.haleibc.com/api/practice7/data' response = requests.get(url) # 先获取文本,再解析 json_str = response.text data = json.loads(json_str) print(data)
1. 使用response.json()获取JSON数据
2. 提取商店名称和城市信息
3. 遍历所有图书,打印书名、作者和价格
4. 使用jsonpath提取所有书名
5. 使用jsonpath提取所有标签
6. 计算所有图书的平均价格
pip install jsonpath