我是Python的新手,我的第一个json解析失败。我已经尝试了很多代码组合来从api请求中提取2个字段(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响应中使用任何答案。
答案 0 :(得分:0)
json
方法已经返回要迭代的列表,而不是需要处理的字符串。
stocklist = requests.get(get_stock_url).json()
for item in stocklist:
print(item[0]['StoreNumber']['StoreName'])
print(item[0]['StoreNumber']['StockStatus']['StockCount'])
如果 did 从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:
...