Open nesosuke opened 4 years ago
from @teara_exe
のようなものが返ってくるが、先頭の [ がよくわかんなくて、辞書にできてなくて???になっている。
jsonはpythonでいうlist
とdictionary
が入り混じったデータ構造が存在する^1ため、json.loads(str)
した結果は必ずdictionary
になるとは限りません。
今回の先頭の[
はlist
を意味します。
恐らくresponse.json()['items']
内はdictionary
のlist
になってると思われます。
最終的には'title': '入門Python3'を取り出したい。
response.json()['items']
がlist
で、順序が固定されているかどうかはわからないが、一番最初に「入門Python3」の本データが出るとすると、response.json()['items'][0]['volumeInfo']['title']
で取得可能です。
余談ですが、jsonの出力を見る際はprint()
を使うよりpprint.pprint()
を用いたほうが見やすいので、使ってみてください。
# coding: utf-8
#Google BooksでAPIを叩く
import requests
import pprint
ISBN = 9784873117386
res = requests.get(
'https://www.googleapis.com/books/v1/volumes',
params={
"q": "isbn={}".format(ISBN)
})
pprint.pprint(res.json()['items'])
// output
[{'accessInfo': {'accessViewStatus': 'NONE',
'country': 'JP',
'embeddable': False,
'epub': {'isAvailable': False},
'pdf': {'isAvailable': False},
'publicDomain': False,
'quoteSharingAllowed': False,
'textToSpeechPermission': 'ALLOWED',
'viewability': 'NO_PAGES',
'webReaderLink': 'http://play.google.com/books/reader?id=YVTijgEACAAJ&hl=&printsec=frontcover&source=gbs_api'},
'etag': 'kzQkEaWQ/RA',
'id': 'YVTijgEACAAJ',
'kind': 'books#volume',
'saleInfo': {'country': 'JP',
'isEbook': False,
'saleability': 'NOT_FOR_SALE'},
'searchInfo': {'textSnippet': 'Pythonが誕生して四半世紀。データサイエンスやウェブ開発、セキュリティなどさまざまな分野でPythonの人気が急上昇中です。プログラミング教育の現場でもCに代わってPythonの採 '
'...'},
'selfLink': 'https://www.googleapis.com/books/v1/volumes/YVTijgEACAAJ',
'volumeInfo': {'allowAnonLogging': False,
'authors': ['ビルルバノビック'],
'canonicalVolumeLink': 'https://books.google.com/books/about/%E5%85%A5%E9%96%80Python3.html?hl=&id=YVTijgEACAAJ',
'contentVersion': 'preview-1.0.0',
'description': 'Pythonが誕生して四半世紀。データサイエンスやウェブ開発、セキュリティなどさまざまな分野でPythonの人気が急上昇中です。プログラミング教育の現場でもCに代わってPythonの採用が増えてきています。本書は、プログラミングが初めてという人を対象に書かれた、Pythonの入門書です。前提とする知識は特にありません。プログラミングおよびPythonの基礎からウェブ、データベース、ネットワーク、並行処理といった応用まで、Pythonプログラミングをわかりやすく丁寧に説明します。',
'imageLinks': {'smallThumbnail': 'http://books.google.com/books/content?id=YVTijgEACAAJ&printsec=frontcover&img=1&zoom=5&source=gbs_api',
'thumbnail': 'http://books.google.com/books/content?id=YVTijgEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api'},
'industryIdentifiers': [{'identifier': '4873117380',
'type': 'ISBN_10'},
{'identifier': '9784873117386',
'type': 'ISBN_13'}],
'infoLink': 'http://books.google.co.jp/books?id=YVTijgEACAAJ&dq=isbn%3D9784873117386&hl=&source=gbs_api',
'language': 'ja',
'maturityRating': 'NOT_MATURE',
'pageCount': 567,
'previewLink': 'http://books.google.co.jp/books?id=YVTijgEACAAJ&dq=isbn%3D9784873117386&hl=&cd=1&source=gbs_api',
'printType': 'BOOK',
'publishedDate': '2015-12-01',
'readingModes': {'image': False, 'text': False},
'title': '入門Python3'}},
.....
]
https://github.com/nesosuke/libpy/blob/792237b813b7bb603f30493ec45dd1656463e18a/google_books_api.py をやると、
のようなものが返ってくるが、先頭の
[
がよくわかんなくて、辞書にできてなくて???になっている。 最終的には'title': '入門Python3'
を取り出したい。