如何使用 Google 本书 API return 包含多本书的搜索结果?
How to return a search result with multiple books using the Google Books API?
我正在阅读 Google 本书 API,并且正在尝试 return 包含多本书的搜索结果。
这是我正在做的事情:
def lookup(search):
"""Look up search for books."""
# Contact API
try:
url = f'https://www.googleapis.com/books/v1/volumes?q={search}&key=myAPIKey'
response = requests.get(url)
response.raise_for_status()
except requests.RequestException:
return None
# Parse response
try:
search = response.json()
return {
"totalItems": int(search["totalItems"]),
"title": search["items"][0]['volumeInfo']['title'],
"authors": search["items"][0]['volumeInfo']['authors'],
}
except (KeyError, TypeError, ValueError):
return None
当然,这只是return一个结果。但是,如果我尝试这样称呼它:
"title": search["items"]['volumeInfo']['title']
它没有 return 任何东西。
Example of JSON to be consumed.
我如何收到所有结果?
我一直面临的另一个 'problem' 是如何获得相同 JSON 的缩略图,因为显然它不起作用:
"thumbnail": search["items"][1]['volumeInfo']['imageLinks']['thumbnail']
您需要遍历响应以获取值。您可以将 try: 更改为以下内容,这将提供标题和作者列表。如果你想要不同的东西,你可以调整它。
try:
search = response.json()
titles = []
authors = []
for itm in search['items']:
titles.append(itm['volumeInfo']['title'])
authors.append(itm['volumeInfo']['authors'])
return {
"totalItems": int(search["totalItems"]),
"title": titles,
"authors": authors,
}
像这样捕获的缩略图:
thumbnails = []
for itm in search['items']:
thumbnails.append(itm['volumeInfo']['imageLinks']['thumbnail'])
我正在阅读 Google 本书 API,并且正在尝试 return 包含多本书的搜索结果。 这是我正在做的事情:
def lookup(search):
"""Look up search for books."""
# Contact API
try:
url = f'https://www.googleapis.com/books/v1/volumes?q={search}&key=myAPIKey'
response = requests.get(url)
response.raise_for_status()
except requests.RequestException:
return None
# Parse response
try:
search = response.json()
return {
"totalItems": int(search["totalItems"]),
"title": search["items"][0]['volumeInfo']['title'],
"authors": search["items"][0]['volumeInfo']['authors'],
}
except (KeyError, TypeError, ValueError):
return None
当然,这只是return一个结果。但是,如果我尝试这样称呼它:
"title": search["items"]['volumeInfo']['title']
它没有 return 任何东西。
Example of JSON to be consumed.
我如何收到所有结果?
我一直面临的另一个 'problem' 是如何获得相同 JSON 的缩略图,因为显然它不起作用:
"thumbnail": search["items"][1]['volumeInfo']['imageLinks']['thumbnail']
您需要遍历响应以获取值。您可以将 try: 更改为以下内容,这将提供标题和作者列表。如果你想要不同的东西,你可以调整它。
try:
search = response.json()
titles = []
authors = []
for itm in search['items']:
titles.append(itm['volumeInfo']['title'])
authors.append(itm['volumeInfo']['authors'])
return {
"totalItems": int(search["totalItems"]),
"title": titles,
"authors": authors,
}
像这样捕获的缩略图:
thumbnails = []
for itm in search['items']:
thumbnails.append(itm['volumeInfo']['imageLinks']['thumbnail'])