使用Python Shopify API上传两张商品图片失败,求技术指导
问题排查与修复建议
我帮你找出了代码里的核心问题,这应该是导致无法成功添加两张商品图片的关键原因:
主要问题:图片读取逻辑错误
你当前只读取了audi.jpg这一张图片的二进制数据,却把这份数据同时绑定给了image和image2两个对象——相当于两张图片其实都是同一张,而且audi2.jpg的文件完全没有被读取处理。
修正后的代码
import shopify API_KEY = 'dsfsdsdsdsdsad' PASSWORD = 'sadsdasdasdas' shop_url = "https://%s:%s@teststore.myshopify.com/admin" % (API_KEY, PASSWORD) shopify.ShopifyResource.set_site(shop_url) path = "audi.jpg" path2 = "audi2.jpg" new_product = shopify.Product() new_product.title = "Audi pictures test " new_product.body_html = "body of the page <br/><br/> test <br/> test" variant = shopify.Variant({'price': 1.00, 'requires_shipping': False,'sku':'000007'}) new_product.variants = [variant] # 分别读取并绑定两张图片 image = shopify.Image() with open(path, "rb") as f: filename = path.split("/")[-1] encoded = f.read() image.attach_image(encoded, filename=filename) image2 = shopify.Image() with open(path2, "rb") as f: filename2 = path2.split("/")[-1] encoded2 = f.read() image2.attach_image(encoded2, filename=filename2) new_product.images = [image, image2] # 添加错误捕获方便排查问题 try: new_product.save() print("商品及图片上传成功!") except Exception as e: print(f"上传失败,错误信息:{e}")
额外建议
- 确认文件路径有效性:确保
audi.jpg和audi2.jpg确实在脚本的执行目录下,或者直接使用绝对路径(比如/Users/xxx/Desktop/audi.jpg)避免路径错误。 - 检查API权限:确认你的Shopify API密钥拥有
write_products权限,没有对应权限会导致图片上传失败。 - 图片格式与大小:Shopify对商品图片有格式(支持JPG/PNG等)和大小限制,确保两张图片都符合平台要求。
内容的提问来源于stack exchange,提问作者ben olsen
相关产品推荐
相关产品推荐

