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

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

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

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Python 3.x

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

Q&A

解決済

1回答

1544閲覧

Pubmed API を利用するときにクエリー作成エラー

LFOHP

総合スコア25

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Python 3.x

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

0グッド

0クリップ

投稿2020/06/18 00:52

前提・実現したいこと

PubmedAPIを利用して情報収集しようとしています。
queryを作成するときに、見やすく、汎用性をもたせようとdb,termなどそれぞれインスタンスを作成してqueryに入れようとしています。
de以下5行をコメントアウトして、下記の#queryでやると実行されるのですが、このままだとエラーがでています。
どこが間違っていますでしょうか?

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

例外が発生しました: JSONDecodeError Expecting value: line 1 column 1 (char 0) File "/Users/kobacho0612/OneDrive/Python_study/Pubmed.py", line 43, in <module> response_json = response.json()

該当のソースコード

Python3

1import pandas as pd 2import openpyxl 3import json 4import requests 5 6db = "pubmed" 7term= "deep+learning" 8retmax="100" 9retmode= "json" 10 11query = 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=db&term=term&retmax=retmax&retmode=retmode' 12 13#query = 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=deep+learning&retmax=10&retmode=json' 14 15response = requests.get(query) 16 17print(response) 18print(response.headers['Content-Type']) 19 20response_json = response.json() 21print(response_json)

試したこと

これだと実行されます。
query = 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=deep+learning&retmax=10&retmode=json'

補足情報(FW/ツールのバージョンなど)

Mac
VSCode
Python3
こちらのサイトを学習しています。
https://lifesciencehack-ai.hatenablog.com/entry/%E8%AB%96%E6%96%87%E6%83%85%E5%A0%B1%E3%82%92%E3%81%BE%E3%81%A8%E3%82%81%E3%81%A6%E3%82%B2%E3%83%83%E3%83%88%E3%81%99%E3%82%8B%E2%91%A2ESearch%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6PMID%E3%82%92%E5%8F%96

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

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

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

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

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

guest

回答1

0

自己解決

python3

1db="pubmed" 2term="deep+learning" 3retmax=100 4retmode="json" 5query = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db={}&term={}&retmax={}&retmode={}" 6query=query.format(db,term,retmax,retmode) 7print(query)
https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=deep+learning&retmax=100&retmode=json

一応解決したようです。もっとすっきり、いい方法があれば教えてください

投稿2020/06/18 03:48

LFOHP

総合スコア25

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問