2015-11-14 11 views
6

this Yelp tutorial से प्रेरित, मैंने एक दिए गए शहर में सभी जिम खोजने के लिए एक स्क्रिप्ट बनाई। मैंने सभी जिम को वापस करने के लिए these updates के साथ स्क्रिप्ट को tweaked, केवल पहले 20 नहीं। आप Gist here पा सकते हैं। SEARCH_LIMIT 20.Yelp API से खराब अनुरोध

मुझे एक खराब अनुरोध त्रुटि का सामना करना पड़ रहा है। मैंने येलप ट्यूटोरियल का बहुत बारीकी से पालन किया, और मुझे यह पता नहीं है कि यह क्या हो सकता है - मुझे पूरा यकीन है कि अनुरोध ठीक तरह से एन्कोड किया गया है, और मेरी सभी एपीआई कुंजी सही हैं।

प्रिंट आउट के नीचे है:

'term': term.replace(' ', '+'), 
'location': location.replace(' ', '+'), 

अपने सार में आप के रूप में स्थान hardcoded है: 'New York, NY', रिक्त स्थान को बदलने + को

Traceback (most recent call last): 
    File "YelpSearch.py", line 97, in <module> 
    query_api() 
    File "YelpSearch.py", line 74, in query_api 
    response = search_yelp(offset) 
    File "YelpSearch.py", line 67, in search_yelp 
    return request(API_HOST, SEARCH_PATH, url_params=url_params) 
    File "YelpSearch.py", line 53, in request 
    conn = urllib2.urlopen(signed_url, None) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 127, in urlopen 
    return _opener.open(url, data, timeout) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 410, in open 
    response = meth(req, response) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 523, in http_response 
    'http', request, response, code, msg, hdrs) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 448, in error 
    return self._call_chain(*args) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 382, in _call_chain 
    result = func(*args) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 531, in http_error_default 
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) 
urllib2.HTTPError: HTTP Error 400: Bad Request 

उत्तर

1

उदाहरण में खोज पैरामीटर वे + संकेत के साथ रिक्त स्थान की जगह मदद करनी चाहिए।

+0

यह कुछ भी नहीं बदलता – NumenorForLife

1

याल्प एपीआई की सीमाएं हैं। आप प्रत्येक अनुरोध के लिए अधिकतम 20 आइटम प्राप्त कर सकते हैं। इसके अलावा, सुलभ वस्तुओं की मात्रा 1000 है। मुझे documentation पर सीमाओं के बारे में जानकारी नहीं मिल रही है। लेकिन, मुझे support group पर इन सीमाओं के बारे में जानकारी मिली। इसके आधार पर आप 50 अनुरोधों के लिए अधिकतम 1000 आइटम प्राप्त कर सकते हैं ([1, ..., 20], [21, ..., 40], ... [981, ..., 1000])

अपने स्निपेट के बारे में आप 1000 से अधिक आइटम प्राप्त करने का प्रयास कर रहे हैं। मैंने पाया कि आपकी सीमा और ऑफ़सेट पैरामीटर। limit = 3, offset = 1000। इसका मतलब है कि आप 1001 से 1003 तक आइटम प्राप्त करना चाहते हैं। और यह दस्तावेज़ीकरण के विपरीत है।

HTTP Error 400: Bad Request आप प्रतिक्रिया

{ 
    error: { 
    field: "offset", 
    description: "The maximum number of accessible results is 1000", 
    id: "INVALID_PARAMETER", 
    text: "One or more parameters are invalid in request" 
    } 
} 

मिल आप ब्राउज़र आप ऊपर की तरह प्रतिक्रिया देखेंगे पर अपने अंतिम signed_url खोलते हैं मतलब है। साथ ही, आप प्रतिक्रिया स्थिति कोड 400 Bad Request देखेंगे।

+0

फिर आप इसे ठीक करने की सलाह कैसे देंगे? – NumenorForLife

+0

समर्थकों के बारे में आप क्या सोचते हैं। मुझे लगता है कि वे आपकी मदद कर सकते हैं। –

+0

मुझे समझ में नहीं आता – NumenorForLife

संबंधित मुद्दे