質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

0回答

1204閲覧

python3で楽天ランキングを楽天APIで取得してCSVで保存する

hiroki777

総合スコア0

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/10/27 12:02

前提・実現したいこと

楽天ランキングを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で実行しました。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ebal

2020/10/27 12:04

`res` の構造を記載してください.
hiroki777

2020/10/27 12:08

大変申し訳ございませんが、pythonの初心者でして、resの構造などについてはわかりません。 引用:楽天ランキングを楽天APIで取得してCSVで保存する https://www.jiriki.co.jp/blog/python/rakutenranking-api-pytho に書かれていたプログラムを実行しただけです。 よろしくお願いします。
ebal

2020/10/27 12:23

質問本文,コメントともにURLから最後のnが抜けています.またこの記事は古く,現在の楽天APIとバージョンが異なるものを参照しています. それはともかく,Colabo でもprintによるコンソール出力は使えるはずなので `print(res)` とすれば中身を見ることができます.
gentaro

2020/10/27 12:24 編集

楽天APIのドキュメントと、実際に取得したresの中身を表示させてものを比較して、正しいものが取得できているのか確認してください。
hiroki777

2020/10/27 12:51

返答ありがとうございます。 res = r.json() print(res) 実行したところ {'error': 'wrong_parameter', 'error_description': 'wrong genreId format'} とメッセージが返ってきました。 よろしくお願いします。
ebal

2020/10/27 13:00

ちゃんとジャンルIDがおかしいと書いてあるので,あとはドキュメントと突き合わせて確認するだけでは?
gentaro

2020/10/27 13:09

「よろしくお願いします」が 「(自分で勉強する気も調べる気もないけど)よろしくお願いします」に見える。
hiroki777

2020/10/30 09:04

ebalさんありがとうございます。 {'error': 'wrong_parameter', 'error_description': 'wrong genreId format'} のメッセージの意味が分からなかったので、いろいろ調べてやってみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問