2017-10-22 4 views
0

Dies ist mein Code unten:Fehler, wenn Daten von json Parsen "JSONDecodeError: Erwartung Wert: Zeile 1, Spalte 1 (char 0)"

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) 

Ich versuche, die 'ats' aus der URL zu analysieren, aber lauf weiter in Fehler:

simplejson.scanner.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Ich denke es ist, weil in der URL die erste Zeile keinen Wert hat. Gibt es eine Möglichkeit, dies zu überspringen? Ich weiß, dass ich einige der Module nicht verwende, die ich importiert habe.

Antwort

0

Das Problem ist, dass Sie eine JSONP Antwort erhalten, die einen Funktionsnamen enthält. Wenn Sie curl diese URL sehen, beginnt die Antwort mit /**/jQuery311046436681352330944_1508679685699({. Dies ist der gleiche Wert, den Sie in der URL sehen können: callback=jQuery311046436681352330944_1508679685699

Um dies loszuwerden, löschen Sie den callback Parameter aus der URL. Verwenden Sie stattdessen 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.

+0

ich bekomme immer noch die gleiche jsonDecodeError, können Sie es ausführen? –

+0

Ungerade ... Ich kann es mit 'curl' bekommen, aber nicht mit' requests' library – cwallenpoole

Verwandte Themen