前提・実現したいこと
楽天ランキングをCSVで保存するプログラムをpython3で作りたいと思い、ネット上で調べてみると、「楽天ランキングを楽天APIで取得してCSVで保存する」という記事を見つけ、実行してみましたが、エラーが出て実行ができませんでした。
該当のソースコード
python3 import requests import csv import sys, codecs sys.stdout = codecs.getwriter("utf-8")(sys.stdout) gen_input = input("catID input here: ") url = "https://app.rakuten.co.jp/services/api/IchibaItem/Ranking/20120927?" st_load = { "genreId": gen_input, "applicationId": ******************************, } r = requests.get(url, params=st_load) res = r.json() f = open("raku.csv" , "a") writer = csv.writer(f) writer.writerow(["No", "Itemname", "URL", "Price"]) for i in res["Items"]: item = i["Item"] Rank = item["rank"] Name = (item["itemName"].encode("utf-8")) Url = item["itemUrl"] Price = item["itemPrice"] writer.writerow([Rank, Name, Url, Price]) f.close()
発生している問題・エラーメッセージ
--------------------------------------------------------------------------- KeyError Traceback (most recent call last) <ipython-input-29-25afe8a35fcb> in <module>() 7 writer.writerow(["No", "Itemname", "URL", "Price"]) 8 ----> 9 for i in res["Items"]: 10 item = i["Item"] 11 Rank = item["rank"] KeyError: 'Items'
どこをどういう風に修正すれば、楽天ランキングを楽天APIで取得してCSVで保存できるか
わかりましたらご教授ください。よろしくお願いします。
引用:楽天ランキングを楽天APIで取得してCSVで保存する
https://www.jiriki.co.jp/blog/python/rakutenranking-api-pytho
補足情報(FW/ツールのバージョンなど)
google Colaboratoryで実行しました。
よろしくお願いします。
`res` の構造を記載してください.
大変申し訳ございませんが、pythonの初心者でして、resの構造などについてはわかりません。
引用:楽天ランキングを楽天APIで取得してCSVで保存する
https://www.jiriki.co.jp/blog/python/rakutenranking-api-pytho
に書かれていたプログラムを実行しただけです。
よろしくお願いします。
質問本文,コメントともにURLから最後のnが抜けています.またこの記事は古く,現在の楽天APIとバージョンが異なるものを参照しています.
それはともかく,Colabo でもprintによるコンソール出力は使えるはずなので
`print(res)` とすれば中身を見ることができます.
楽天APIのドキュメントと、実際に取得したresの中身を表示させてものを比較して、正しいものが取得できているのか確認してください。
返答ありがとうございます。
res = r.json()
print(res)
実行したところ
{'error': 'wrong_parameter', 'error_description': 'wrong genreId format'}
とメッセージが返ってきました。
よろしくお願いします。
ちゃんとジャンルIDがおかしいと書いてあるので,あとはドキュメントと突き合わせて確認するだけでは?
「よろしくお願いします」が
「(自分で勉強する気も調べる気もないけど)よろしくお願いします」に見える。
ebalさんありがとうございます。
{'error': 'wrong_parameter', 'error_description': 'wrong genreId format'}
のメッセージの意味が分からなかったので、いろいろ調べてやってみます。
あなたの回答
tips
プレビュー