无法以有组织的方式获取输出

2024-05-14 23:06:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我用python编写了一个脚本,用它们的api从网页中刮取一些names以及review textsreviewers连接到每个项目名称的项目。事情是我下面的脚本可以做这些事情的一部分。我需要有条理地去做

例如,在每个项目name中有多个review textsreviewer names连接到它。我想让他们沿着柱子走,比如:

Namereview textreviewerreview textreviewer--

基本上,我不知道如何在我的脚本中以正确的方式使用已经定义的for loop。最后,很少有项names没有任何reviewsreviewers,因此代码在找不到任何reviews时会中断

这是我目前的做法:

import requests

url = "https://eatstreet.com/api/v2/restaurants/{}?yelp_site="

res = requests.get("https://eatstreet.com/api/v2/locales/madison-wi/restaurants")
for item in res.json():
    itemid = item['id']
    req = requests.get(url.format(itemid))
    name = req.json()['name']
    for texualreviews in req.json()['yelpReviews']:
        reviews = texualreviews['message']
        reviewer = texualreviews['reviewerName']
        print(f'{name}\n{reviews}\n{reviewer}\n')

如果我在for循环外使用print语句,它只会给我一个reviewreviewer

如有任何帮助,我们将不胜感激


Tags: 项目name脚本apijsonfornamesrequests
1条回答
网友
1楼 · 发布于 2024-05-14 23:06:52

您需要将审阅者和审阅者名称附加到数组中,以便按您的意愿显示

请尝试以下代码

review_data = dict()
review_data['name'] = req.json()['name']
review_data['reviews'] = []
for texualreviews in req.json()['yelpReviews']:
    review_sub_data = {'review': texualreviews['message'], 'reviewer': texualreviews['reviewerName']}
    review_data['reviews'].append(review_sub_data)
#O/P {'name': 'xxx', 'reviews':[{'review':'xxx', 'reviewer': 'xxx'}, {'review':'xxx', 'reviewer': 'xxx'}]}

希望这有帮助

相关问题 更多 >

    热门问题