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

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

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

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Python 3.x

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

Python

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

API

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

Q&A

解決済

1回答

783閲覧

Googleカスタム検索APIを使って画像を収集しようと思っています

matchi6

総合スコア18

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Python 3.x

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

Python

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

API

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

0グッド

1クリップ

投稿2018/12/05 05:08

「NoneType' object is not subscriptable」このようなエラーが現れました。何行目がエラー起こしてますよ。などといった情報もなくこの一文のみの表示でした。どこがうまく処理されていないか、教えていただきたいです。

Python(JupyterNotebook)でGoogle Custom Search APIを使って画像収集を作っています。

■以下のコードを入力した際に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

NoneType' object is not subscriptable

該当のソースコード

import os import json import datetime from time import sleep from googleapiclient.discovery import build GOOGLE_API_KEY = "*********" CUSTOM_SEARCH_ENGINE_ID = "**********" DATA_DIR = 'ディレクトリ名' def makeDir(path): if not os.path.isdir(path): os.mkdir(path) today = datetime.datetime.today().strftime("%Y%m%d") timestamp = datetime.datetime.today().strftime("%Y/%m/%d %H:%M:%S") makeDir(DATA_DIR) service = build("customsearch", "v1", developerKey=GOOGLE_API_KEY) page_limit = 10 start_index = 1 response = [] for num_page in range(0, page_limit): try: sleep(1) response.append(service.cse().list( q='検索キーワード', cx=CUSTOM_SEARCH_ENGINE_ID, lr='lang_ja', num=10, start=start_index ).execute()) start_index = response[num_page].get("queries").get("nextPage")[0].get("startIndex") except Exception as e: print(e) break # レスポンスをjson形式で保存 save_response_dir = os.path.join(DATA_DIR, 'response') makeDir(save_response_dir) out = {'snapshot_ymd': today, 'snapshot_timestamp': timestamp, 'response': []} out['response'] = response jsonstr = json.dumps(out, ensure_ascii=False) with open(os.path.join(save_response_dir, 'response_' + today + '.json'), mode='w') as response_file: response_file.write(jsonstr)

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

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

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

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

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

Lhankor_Mhy

2018/12/05 06:53

エラーメッセージはそれだけでしたか?
matchi6

2018/12/05 07:25

はい。この1文のみの記載でした
Lhankor_Mhy

2018/12/05 07:46

通常はスタックトレースがあるので、もう少し長いと思うのですが。これだけだとエラーの詳細が分からないので対処が難しいですね。何か特殊な設定をしていますか?
Lhankor_Mhy

2018/12/05 07:48

情報がないので、当て推量ですが、おそらく response[num_page].get("queries").get("nextPage") が None なんじゃないかと。
matchi6

2018/12/05 08:11

ありがとうございます!response[num_page].get("queries").get("nextPage")を変更するとエラーも出なくなり、データを取得することもできました!
matchi6

2018/12/05 08:33

URLありがとうございます。
guest

回答1

0

自己解決

response[num_page].get("queries").get("nextPage")の値がNoneの疑いがあり、start_indexに入れる値を数字に変更したらエラーを解消することができました。

投稿2018/12/05 08:31

matchi6

総合スコア18

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問