在ppython中写jsonpath解析豆瓣电影提取评分、名称、链接、图片的代码
时间: 2024-10-11 19:17:20 浏览: 30
在Python中,你可以使用`jsonpath-ng`库来解析JSON数据并提取你需要的信息,比如豆瓣电影的评分、名称、链接和图片。首先,你需要安装这个库,可以使用pip来安装:
```bash
pip install python-jsonpath-ng
```
然后,假设你已经有了一个包含豆瓣电影信息的JSON对象或者字符串,我们可以编写一个函数来进行提取:
```python
from jsonpath_ng import parse
def extract_data(json_data, jsonpaths):
# 解析器
expr = parse(jsonpaths)
# 提取评分、名称、链接和图片对应的json路径
paths = {
'rating': '$.score', # 评分
'title': '$.name', # 名称
'link': '$.url', # 链接
'image': '$.cover' # 图片
}
results = {}
for key, path in paths.items():
matches = expr.find(json_data)
if matches:
results[key] = [match.value for match in matches]
else:
results[key] = None # 如果路径不存在,设置为None
return results
# 示例:假设json_data是一个字典或从文件读取的数据
json_data_example = {
"movies": [
{"name": "肖申克的救赎", "score": 9.7, "url": "https://movie.douban.com/subject/1292052/", "cover": "http://img3.doubanio.com/lpic/s84691.jpg"},
{"name": "阿甘正传", "score": 9.6, "url": "https://movie.douban.com/subject/1292051/", "cover": "http://img3.doubanio.com/lpic/s84689.jpg"}
]
}
extracted_info = extract_data(json_data_example, "$..movies[*]")
print(extracted_info)
```
在这个例子中,`jsonpaths`是一个字符串,`$..movies[*]`表示查找整个文档中所有`movies`数组元素。
阅读全文