When I try and run this program it always shows KeyError
and if I keep a try/except
block no information gets printed.
The error is generated at submission_dict
at title as keyerror. at 16th line
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']```