-2

当我尝试运行该程序时,它总是显示KeyError,如果我保留一个try/except块,则不会打印任何信息。该错误submission_dict在标题处生成为 keyerror。在第 16 行

from operator import itemgetter
import requests

#Make an API call and store the response
url='https://hacker-news.firebaseio.com/v0/topstories.json'
r=requests.get(url)
print(f"Status Code:{r.status_code}")

#Process the information about each submission
submission_ids=r.json()
submission_dicts=[]
for submission_id in submission_ids[:30]:
    #Make a seperate api call for each id
    url1=f"https://hacker-news.firebaseio.com/v0/item{submission_id}.json"
    r1=requests.get(url1)
    response_dict=r1.json()
    submission_dict={
            'title':response_dict['title'],
            'hn_link':f"http://news.ycombinator.com/item?id={submission_id}",
            'comments':response_dict['descendants']
        }
    submission_dicts.append(submission_dict)
submission_dicts=sorted(submission_dicts,key=itemgetter('comments'),reverse=True)
for submission_dict in submission_dicts:
    print(f"\nTitle: {submission_dicts['title']}")
    print(f"\nDiscuission link: {submission_dicts['hn_link']}")
    print(f"\nComments: {submission_dicts['comments']}")
<ipython-input-11-956f08dd0f07> in <module>
     15         print(f"id: {submission_id}\tstatus: {r.status_code}")
     16         submission_dict={
---> 17                 'title':response_dict['title'],
     18                 'hn_link':f"http://news.ycombinator.com/item?id={submission_id}",
     19                 'comments':response_dict['descendants']```
4

1 回答 1

0
from operator import itemgetter
import requests

#Make an API call and store the response
url='https://hacker-news.firebaseio.com/v0/topstories.json'
r=requests.get(url)
print(f"Status Code:{r.status_code}")

#Process the information about each submission
submission_ids=r.json()
submission_dicts=[]
for submission_id in submission_ids[:3]:
    #Make a seperate api call for each id
    url1=f"https://hacker-news.firebaseio.com/v0/item/{submission_id}.json"
    r1=requests.get(url1)
    response_dict=r1.json()
    submission_dict={
            'title':response_dict['title'],
            'hn_link':f"http://news.ycombinator.com/item?id={submission_id}",
            'comments':response_dict['descendants']
        }
    submission_dicts.append(submission_dict)
submission_dicts=sorted(submission_dicts,key=itemgetter('comments'),reverse=True)
for submission_dict in submission_dicts:
    print(f"\nTitle: {submission_dict['title']}")
    print(f"\nDiscuission link: {submission_dict['hn_link']}")
    print(f"\nComments: {submission_dict['comments']}")
于 2022-02-24T13:12:08.880 回答