【发布时间】:2021-11-03 14:42:09
【问题描述】:
我可以在 js 和 php 中做到这一点,但在 python 中不行。我正在尝试将 google book api 中的缩略图图像提取到 python 变量中。 文本对象很好,例如
newTitle = (parsed_json['items'][0]['volumeInfo']['title'])
isbn10 = (parsed_json['items'][0]['volumeInfo']['industryIdentifiers'][1]['identifier'])
isbn13 = (parsed_json['items'][0]['volumeInfo']['industryIdentifiers'][0]['identifier'])
图像在 api 中提供如下。 (如果你把 http// url 放到浏览器中你会看到图片):
"imageLinks": {
"smallThumbnail": "http://books.google.com/books/content?id=XUnNDwAAQBAJ&printsec=frontcover&img=1&zoom=5&edge=curl&source=gbs_api",
"thumbnail": "http://books.google.com/books/content?id=XUnNDwAAQBAJ&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api"
我尝试了简单的方法:
myImage = (parsed_json['items'][0]['volumeInfo']['imageLinks'][thumbnail])
这是行不通的。 我已经安装了枕头来提供图像管理:
from PIL import Image
img = Image.open("parsed_json['items'][0]['volumeInfo']['imageLinks'][thumbnail]") or
img = Image.open(parsed_json['items'][0]['volumeInfo']['imageLinks'][thumbnail])
这是行不通的。我尝试过更复杂的安排:
from PIL import Image
import requests
from io import BytesIO
response = requests.get(parsed_json['items'][0]['volumeInfo']['imageLinks'][thumbnail])
img = Image.open(BytesIO(response.content))
但似乎没有任何效果。我已经尝试了这些尝试的许多其他变体。我也尝试加载指向缩略图的文本以尝试另一条路线,但未成功。我相信“['items'][0]['volumeInfo']['imageLinks'][thumbnail]”是正确的,尽管我测试变量是否正确加载的唯一方法是保存它或者该行是否正确的代码不起作用。
【问题讨论】:
标签: python json image api thumbnails