You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Google Books API获取缩略图并存储到Python变量

问题核心原因

你的所有尝试都存在同一个基础语法错误:访问Python字典的字符串键时,没有给键名thumbnail加引号,Python会将未加引号的thumbnail识别为变量而非字符串键,触发未定义变量的报错。

对应解决方案

1. 仅将图片URL存入变量

和你之前提取标题、ISBN的逻辑完全一致,给字符串键加引号即可:

my_image_url = parsed_json['items'][0]['volumeInfo']['imageLinks']['thumbnail']

此时my_image_url变量中存储的就是可直接访问的图片链接字符串。

2. 将图片本身加载为Pillow Image对象

Image.open不支持直接读取网络URL,需要配合requests请求资源,修正键名+补充请求头避免被Google Books拦截即可:

from PIL import Image
import requests
from io import BytesIO

# 正确获取图片URL
img_url = parsed_json['items'][0]['volumeInfo']['imageLinks']['thumbnail']
# 加UA头模拟浏览器请求,避免API返回403拒绝访问
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
response = requests.get(img_url, headers=headers)
# 校验请求是否成功
response.raise_for_status()
# 加载为Image对象
img = Image.open(BytesIO(response.content))

如果需要存储图片原始二进制内容,直接取response.content即可,也可以直接写入本地文件:

# 保存图片到本地示例
with open("book_cover.jpg", "wb") as f:
    f.write(response.content)

内容的提问来源于stack exchange,提问作者killeme

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 16:30:00