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

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

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

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

2841閲覧

KeyError:'value'の解決法

fdd

総合スコア28

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2018/12/03 15:07

前提・実現したいこと

下記のサイトを参考にBing Search API v7を用いて画像を集めようとしていますが、
KeyError: 'value'とエラーが出てしまい進みません。

https://blog.wackwack.net/category/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-python

参考記事

辞書の基本知識がなかったので、下記のサイトを参考に解決しようと思いましたが、どのようにすれば良いか分かりません。
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

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

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

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

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

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

Lhankor_Mhy

2018/12/04 00:39

dataの中身をご提示いただけますか?
fdd

2018/12/04 00:47

すみません。dataの中身とはどのdataの中身ですか?
Lhankor_Mhy

2018/12/04 00:48

変数data のことです。
Lhankor_Mhy

2018/12/04 01:10

なぜ、変数 data の中身が気になっているのかというと、APIのレファレンスを見たところ、そのエンドポイントでは'value'というキーが存在しなかったのです。なので、APIの利用の仕方を間違っているのではないか、と思い、レスポンスを見れば判断できるかと考えました。
Lhankor_Mhy

2018/12/04 01:11

もし、「そのぐらい自分で判断できるから、提示したくない」ということでしたら、エンドポイントが正しいかどうか、再度ご確認いただけますか?
fdd

2018/12/04 01:18

すみません。apiを使い慣れていない者で、その変数dataの中身というのは変数dataのプログラムを動かすためのソースコードをファイルに保存しておかなければならないという事ですか?
Lhankor_Mhy

2018/12/04 01:21

いえ、実行してエラーになった時の、変数 data の中身が知りたいのです。ご質問に「初心者アイコン」がついていなかったので、ご質問者はある程度Pythonが書ける方だと考えてお話をしています。補足依頼の内容が難しいようでしたら、そのようにお知らせください。
hayataka2049

2018/12/04 05:06

data = r.json()の次の行にインデントレベルを揃えてprint(data)とか入れて、表示されたものを貼れば良いでしょう。もしプライバシーポリシー関連の情報などが含まれていたら適当に伏せ字にしてください
fdd

2018/12/04 05:31

ありがとうございます。表示させて頂きます。 {'statusCode': 404, 'message': 'Resource not found'} {'statusCode': 404, 'message': 'Resource not found'} {'statusCode': 404, 'message': 'Resource not found'} {'statusCode': 404, 'message': 'Resource not found'} {'statusCode': 404, 'message': 'Resource not found'}
fdd

2018/12/04 06:57

ありがとうございます。microsoft azureのホームページでapiを利用するためのURLを確認することができ、動かすことができました。様々なアドバイス本当にありがとうございました。
guest

回答1

0

自己解決

microsoft azureのホームページ先で画像検索API v7を利用するためのURLを確認する。

投稿2018/12/04 07:00

fdd

総合スコア28

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問