如何正确解析json。TypeError字符串索引必须是整数

2024-04-26 23:15:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python新手,我的第一次json解析失败了。我尝试了这么多的代码组合来从api请求中提取两个字段(StoreName和StockCount),但不知道哪里出了问题。应该很简单,但我想不出来…谢谢。你知道吗

到目前为止。。。你知道吗

import json
import requests
bunn_stock_api = 'https://www.bunnings.com.au/api/v1/store/6432/nearest/3/'
bunn_product_id = '3020069'
get_stock_url = bunn_stock_api + bunn_product_id
stock_json_data = requests.get(get_stock_url).json()
stocklist = list(json.dumps(stock_json_data))
for item in stocklist:
    print(item[0]['StoreNumber']['StoreName'])
    print(item[0]['StoreNumber']['StockStatus']['StockCount'])

删除额外非重要信息的json响应

[
    {
    "StoreNumber":"6140",
    "StoreInfo":{
        "StoreNumber":0,
        "StoreName":"Nunawading",
        "CurrentTradingHours":{
            "IsOpen":true,
        }
    },
    "StockStatus":[
        {
        "ItemNumber":"3020069",
        "Code":3,
        "Message":"In stock",
        "StockCount":21
      }
    ]
  },
    {
    "StoreNumber":"6230",
    "StoreInfo":{
        "StoreNumber":0,
        "StoreName":"Vermont South",
        "CurrentTradingHours":{
            "IsOpen":true,
        }
    },
    "StockStatus":[
        {
        "ItemNumber":"3020069",
        "Code":3,
        "Message":"In stock",
        "StockCount":15
      }
    ]
  }
]

我知道这个问题以前已经被回答过很多次了,但是我不能让任何一个答案对我的json响应起作用。你知道吗


Tags: importapiidjsonurlgetstockproduct
1条回答
网友
1楼 · 发布于 2024-04-26 23:15:25

json方法已经返回要迭代的列表,而不是需要处理的字符串。你知道吗

stocklist = requests.get(get_stock_url).json()
for item in stocklist:
    print(item[0]['StoreNumber']['StoreName'])
    print(item[0]['StoreNumber']['StockStatus']['StockCount'])

如果你从requests.get(...).text()得到了原始的JSON,你会想用json.loads解码这个值,而不是用json.dumps进一步编码它。你知道吗

json_data = requests.get(get_stock_url).text
stocklist = json.loads(json_data)
for item in stocklist:
    ...

相关问题 更多 >