前提・実現したいこと
下記のサイトを参考にBing Search API v7を用いて画像を集めようとしていますが、
KeyError: 'value'とエラーが出てしまい進みません。
参考記事
辞書の基本知識がなかったので、下記のサイトを参考に解決しようと思いましたが、どのようにすれば良いか分かりません。
http://tomoprog.hatenablog.com/entry/2016/05/18/222959
発生している問題・エラーメッセージ
File "<ipython-input-2-984dde50dd7c>", line 1, in <module>
runfile('/Users/name/untitled0.py')
File "/Users/name/anaconda3/envs/python35/lib/python3.6/site-packages/spyder_kernels/customize/spydercustomize.py", line 668, in runfile
execfile(filename, namespace)
File "/Users/name/anaconda3/envs/python35/lib/python3.6/site-packages/spyder_kernels/customize/spydercustomize.py", line 108, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "/Users/name/untitled0.py", line 28, in <module>
for values in data['value']:
KeyError: 'value'
該当のソースコード
import math
import requests
import imgutil
import time
path = "読み込んだ画像をファイルに保存する先"
imgutil.mkdir(path)
url = "https://api.cognitive.microsoft.com/bing/v7.0"
query = "検索名称"
count = 50 # 1リクエストあたりの最大取得件数 default:30 max:150
mkt = "ja-JP" # 取得元の国コード
num_per = 10 # リクエスト回数(count * num_per=取得画像数)
offset = math.floor(count / num_per) # ループ回数
subscriptionKey="API Key"
headers = {'Ocp-Apim-Subscription-Key':subscriptionKey}
for offset_num in range(offset):
params = {'q':query,'count':count,'offset':offset_num*offset,'mkt':mkt}
r = requests.get(url,headers=headers,params=params)
data = r.json()
for values in data['value']:
image_url = values['contentUrl']
try:
imgutil.download_img(path,image_url)
except Exception as e:
print("failed to download image at {}".format(image_url))
print(e)
time.sleep(1)
補足情報(FW/ツールのバージョンなど)
Python 3.6.3
Mac OS High Sierra
ターミナル バージョン2.8.2
回答1件
あなたの回答
tips
プレビュー