尝试搜索以查看库存中的数量是否高于0
:
得到:
TypeError: 'int' object is not subscriptable
代码:
import requests
from bs4 import BeautifulSoup as bs4
from threading import Thread
import json
s = requests.session()
def checkstock():
global session
response = s.get('https://www.astro-bot.io/api/commerce/inventory/stock/?crumb=BQXy6KNmMGWENWE3YWQzMTc3MDU5NzE1ODdkNDNiM2RmZTEyNjg4&itemId=5b0dc9172b6a283905dabe08')
data = json.loads(response.text)
stock = data['results'][0]['qtyInStock'][0]['available']
if stock in [0]:
print("out of stock!")
else:
print("in stock")
checkstock()
答案 0 :(得分:0)
data = json.loads(response.text)
stock = data['results'][0]['qtyInStock'][0]['available']
这应该是
data = json.loads(response.text)
stock = data['results'][0]['qtyInStock']
答案 1 :(得分:0)
您需要循环搜索结果,因为可能会有更多记录。 requests
已经提供了一种将内容转换为json的简便方法。
编写代码的简单方法是:
def checkstock():
global session
response = s.get('https://www.astro-bot.io/api/commerce/inventory/stock/?crumb=BQXy6KNmMGWENWE3YWQzMTc3MDU5NzE1ODdkNDNiM2RmZTEyNjg4&itemId=5b0dc9172b6a283905dabe08')
data = response.json()
for results in data:
if results['qtyInStock'] == 0:
print('Out of stock')
else:
print('Available')
答案 2 :(得分:0)
def checkstock():
global session
response = s.get('https://www.astro-bot.io/api/commerce/inventory/stock/?crumb=BQXy6KNmMGWENWE3YWQzMTc3MDU5NzE1ODdkNDNiM2RmZTEyNjg4&itemId
=5b0dc9172b6a283905dabe08')
data = json.loads(response.text)
results = data.get('results',[{}])[0]
try:
qtyInStock = [{}] if (results['qtyInStock'] == 0) else results['qtyInStock']
except TypeError:
qtyInStock = [{}]
stock = qtyInStock[0].get('available',0)
print('in stock') if (stock != 0) else print('out of stock!')