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

使用Python爬取Nvidia API时无法显示productPrice字段问题求助

解决Nvidia API爬取中productPrice字段不显示的问题

问题1:格式化字符串占位符数量不匹配

你的print语句里仅定义了2个占位符{},但传入了3个参数(产品标题、库存状态、价格),导致价格参数被直接忽略,这是输出看不到价格的直接原因。

修改方式:添加对应数量的占位符,或者用更直观的f-string格式化:

# 方式1:补充占位符
print("{:<50} {} {}".format(p["productTitle"], p["productAvailable"], p["productPrice"]))

# 方式2:使用f-string更清晰
print(f"{p['productTitle']:<50} 库存状态: {p['productAvailable']} 价格: {p.get('productPrice', '无价格')}")

问题2:productPrice可能是嵌套结构

调用API返回的productPrice大概率是嵌套字典(包含currentPrice、currency等子字段),而非直接的数值/字符串。可以先打印单条产品数据确认结构:

print(json.dumps(p, indent=2))

如果是嵌套结构,需要提取对应子字段,同时处理字段缺失的情况避免报错:

price_info = p.get("productPrice", {})
price = price_info.get("currentPrice", "无价格")
currency = price_info.get("currency", "")

修改后的完整代码

import json
import requests

url = 'https://api.nvidia.partners/edge/product/search?page=1&limit=9&locale=fr-fr&category=GPU&gpu=RTX%203090,RTX%203080%20Ti,RTX%203080,RTX%203070%20Ti,RTX%203070,RTX%203060%20Ti,RTX%203060&gpu_filter=RTX%203090~12,RTX%203080%20Ti~7,RTX%203080~16,RTX%203070%20Ti~3,RTX%203070~18,RTX%203060%20Ti~8,RTX%203060~2'
headers = {
    "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:89.0) Gecko/20100101 Firefox/89.0"
}

data = requests.get(url, headers=headers).json()

for p in data["searchedProducts"]["productDetails"]:
    title = p["productTitle"]
    available = p["productAvailable"]
    price_info = p.get("productPrice", {})
    price = price_info.get("currentPrice", "无价格")
    currency = price_info.get("currency", "")
    print(f"{title:<50} 库存: {available} 价格: {price} {currency}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 20:06:22