【发布时间】:2018-11-12 14:37:48
【问题描述】:
import requests
from bs4 import BeautifulSoup as bs4
from threading import Thread
import json
import time
from datetime import datetime
import _thread
webhook = ("https://hooks.slack.com/services/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")
s = requests.session()
payload={"channel": "#bot-monitor", "username": "Astro-bot", "text": "<https://www.astro-bot.io/astro/buyme-asdf-j4wrj-ypzkf|Astro Bot Restock! Click to Purchase>", "icon_emoji": ":rocket:"}
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']
def checkstock():
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']
print(stock)
def post():
global stock
if stock in [0]:
print("Out of stock! LOL!")
time.sleep(3)
checkstock()
else:
if stock > (0):
s.post(webhook, json=payload)
def main():
checkstock()
post()
if __name__ == '__main__':
main()
代码运行一次,然后当它再次检查库存时,我得到:
从 None 提高 JSONDecodeError("Expecting value", s, err.value) json.decoder.JSONDecodeError:预期值:第 1 行第 1 列(字符 0)。
请提出建议。
【问题讨论】:
-
请在尝试以 JSON 格式加载之前向我们显示响应文本
-
困惑的@cricket_007,你是什么意思
-
请在每次尝试
json.loads(response.text)之前将您的帖子编辑到print(response.text)... 这将帮助您和我们调试问题(即您的 URL 并不总是返回完整的 JSON 正文)