尝试在 python 中解析时出现 JSON 键错误

Posted

技术标签:

【中文标题】尝试在 python 中解析时出现 JSON 键错误【英文标题】:JSON key error when attempting to parse in python 【发布时间】:2022-01-04 14:46:45 【问题描述】:

我提出了一个 API 请求:

# set up the request parameters
params = 
  'api_key': 'XXXXXXXXXXXXXXXXXXXXXXXXX',
  'type': 'product',
  'item_id': 'XXXXXXXXX',
  'url': 'https://www.somestore.com',
  'output': 'json'


# make the http GET request to the API
api_result = requests.get('https://api.shopperapi.com/request', params)

product_data = json.loads(api_result.text)


if ((product_data["product.buybox_winner.seller.name"]=="MyStore.com") and (product_data["product.buybox_winner.availability.in_stock"]=="False")):
      my_Mailer("Its out of stock")

JSON 格式为:



  "request_info": ,
  "request_metadata": ,
  "request_parameters": ,
  "product": 
    "brand": "XXX",
    "title": "MyProductName",
    "upc": "XXXXXXXX",
    "item_id": "XXXXXXXXXX",
    "product_id": "XXXXXXXXXX",
    "item_number": "XXXXXXXXX",
    
    "model": "85888",
    "ratings_total": 45,
    "rating": 4.6,
    "type": "Housewares",
    "buybox_winner": 
      "price": 100.0,
      "was_price": 199.95,
      "currency_symbol": "$",
      "id": "XXXXXXXXXXXXXXXXXXXXXXXX",
      "": 
        "name": "MyStore.com",
        "id_secondary": "XXXXXXXXXXXXXXXXXXXXXXXXXX",
        "id": "XXXXXXXXXXXXXXXXXXXXXXXXXX"
      ,
      "availability": 
        "raw": "OUT_OF_STOCK",
        "in_stock": false,
        "preorder": false
      


我的错误是 KeyError: 'product.buybox_winner.seller.name'

我似乎无法解析这个 JSON 文件,因为我不知道如何正确引用密钥来检查它。

【问题讨论】:

这能回答你的问题吗? How to access an element inside a nested dictionary in python? "product.buybox_winner.seller.name" 字典中不存在此键。看来您正在尝试访问 json 中的路径。字典不支持。你需要做product_data['product']['buybox_winner']['seller']['name'] 【参考方案1】:

尝试以下方法:

product_data['product']['buybox_winner']['seller']['name']

您需要以这种方式使用键值访问 JSON。

【讨论】:

以上是关于尝试在 python 中解析时出现 JSON 键错误的主要内容,如果未能解决你的问题,请参考以下文章

Web Scraping:在 Python 中解析 JSON 时出现 KeyError

尝试在 iOS 7 下使用 SwiftyJSON 解析 JSON 数据时出现未知类型

在尝试解析 JSON 数据 W/System.err 时出现此错误:org.json.JSONException:对客户没有价值

解析“......没有方法'replace'”时出现JSON错误

在 Python 中读取 Twitter json 文件时出现 KeyErrors

在 create-react-app 创建的环境中获取本地 JSON 文件时出现 JSON 解析错误