1

这是我下面的代码:

from urllib.request import urlopen
import json
import requests

url = 'https://production-us-adidasgroup.demandware.net/s/adidas-US/dw/shop/v15_6/products/(CQ1862)?client_id=392f521c-cf82-4c24-8ee4-97b4bfe926c5&expand=availability,variations,prices&callback=jQuery311046436681352330944_1508679685699&_=1508679685720.json'

s = requests.session()

res = s.get(url)
json_dict = res.json()

qty = json_dict['inventory']['ats']

print(qty)

我正在尝试从 url 解析“ats”,但一直遇到错误:

simplejson.scanner.JSONDecodeError:预期值:第 1 行第 1 列(字符 0)

我认为这是因为在 URL 中第一行没有价值。有没有办法跳过这个?我知道我没有使用我导入的一些模块。

4

1 回答 1

1

问题是您收到一个包含函数名称的JSONP响应。如果您curl使用该 URL,您将看到响应以/**/jQuery311046436681352330944_1508679685699({. 这是您可以在 URL 中看到的相同值:callback=jQuery311046436681352330944_1508679685699

要摆脱这种情况,请callback从 URL 中删除参数。改为使用https://production-us-adidasgroup.demandware.net/s/adidas-US/dw/shop/v15_6/products/(CQ1862)?client_id=392f521c-cf82-4c24-8ee4-97b4bfe926c5&expand=availability,variations,prices&_=1508679685720.json

于 2017-10-22T16:50:22.837 回答