私はスマートミラー用のスクレーパーを構築しようとしています。私は天気、汚染レベル&のニュースを得るためにpythonスクリプトをビルドしました。なぜなら、天気&の汚染レベルのような他の機能の代わりにデータを掻き集めるときに、このブロックの機能でエラーが発生しているからです。これは、私はエラーを取得していますコードです:KeyError: 'ある機能にはデータがありますが、他の機能にはありません。
def news(self):
reddit1 = "https://www.reddit.com/r/LifeProTips/hot.json"
reddit2 = "https://reddit.com/r/technology/hot.json"
reddit3 = "https://reddit.com/r/Futurology/hot.json"
reddit4 = "https://reddit.com/r/Showerthoughts/hot.json"
lpt = requests.get(reddit1)
tech = requests.get(reddit2)
futu = requests.get(reddit3)
show = requests.get(reddit4)
lptd = json.loads(lpt.text)
techd = json.loads(tech.text)
futud = json.loads(futu.text)
showd = json.loads(show.text)
lpttitle = lptd['data']['children'][0]['data']['title']
print(lpttitle)
lptcontent = lptd['data']['children'][0]['data']['selftext']
print(lptcontent)
techttitle = techd['data']['children'][0]['data']['title']
print(techtitle)
techcontent = techd['data']['children'][0]['data']['selftext']
print(techcontent)
fututitle = futud['data']['children'][2]['data']['title']
print(fututitle)
futucontent = futud['data']['children'][0]['data']['selftext']
print(futucontent)
showtitle = showd['data']['children'][0]['data']['title']
print(showdata)
showcontent = showd['data']['children'][0]['data']['selftext']
print(showcontent)
lptdump = requests.put('firebaseurl',json={"Title": lpttitle, "Content": lptcontent})
techdump = requests.put('firebaseurl',json={"Title": techtitle, "Content": techcontent})
futudump = requests.put('firebaseurl',json={"Title": fututitle, "Content": futucontent})
showdump = requests.put('firebaseurl',json={"Title": showtitle, "Content": showcontent})
が、このような機能のために:
def pollution(self):
url = "api"
url2 = "api"
pm10 = requests.get(url)
pm25 = requests.get(url2)
pm10leveldata = json.loads(pm10.text)
pm25leveldata = json.loads(pm25.text)
pm10level = pm10leveldata[0]['data']
pm25level = pm25leveldata[0]['data']
print pm10level
print pm25level
# pm10 = round(pm10level)
# pm25 = round(pm25level)
pdump = requests.put('firebaseurl',json={"Pm10": pm10level, "Pm25": pm25level})
エラーなし。
{'error': 429, 'message': 'Too Many Requests'}
あなたが怒っているのredditを:あなたはそれを使用しようとする前に、なぜ私はその1ではなく、この
は、エラーが発生していますか? –
@ColinBasnett lpttitle = lptd ['data'] ['children'] [0] ['data'] ['title'] 'コメントを外すと他の人に行く – MatejMecka
' lptdを出力する'行が実行され、キーが実際に存在するかどうかを確認します。あなたは真ではないデータのフォーマットについて仮定しているでしょう。 –