练习7:JSON和JSONPath 📕

📋 任务目标

掌握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. 计算所有图书的平均价格

💡 安装jsonpath

pip install jsonpath
返回练习列表 下一个练习 →