打印 JSON python 中的某些元素

Printing certain elements from JSON python

我 运行 下面的代码使用 python 创建了一个 json 结构,我正在尝试为'foods'结构

import re
import json
from subprocess import check_output
import requests
from bs4 import BeautifulSoup

data = re.search("__reactInitialState__ = (.*);", requests.get(url).text)[1]
data = json.loads(data)

我似乎无法访问 foods 结构以获取标题元素以获取输出。有什么想法吗?

我认为你不需要 re

import requests
from bs4 import BeautifulSoup as BS
(r := requests.get('https://www.bbc.co.uk/food/recipes/avocado_pasta_with_peas_31700')).raise_for_status()
soup = BS(r.text, 'lxml')
ingredients = [li.find('a').getText() for li in soup.select('li.recipe-ingredients__list-item')]
print(ingredients)

输出:

['penne', 'avocado', 'garlic', 'coconut oil', 'salt', 'lemon', 'mint', 'peas', 'chilli']

以 json 格式输出标题元素。

import re
import json
import requests

url = "https://www.bbc.co.uk/food/recipes/avocado_pasta_with_peas_31700"
data = re.search("__reactInitialState__ = (.*);", requests.get(url).text)[1]
data = json.loads(data)
data=data["recipeReducer"]["recipe"]["stagesWithoutLinks"][0]['ingredients']

title=[]
for i in data:
    j=i['foods'][0]['title']
    title.append(j)
print(title)

输出:

['penne', 'avocado', 'garlic', 'coconut oil', 'salt', 'lemon', 'mint', 'peas', 'chilli']