संपादित करें: मुझे समस्या का पता चला। #user_sex में # पाइथन अनुरोधों द्वारा% 23 में परिवर्तित नहीं किया जा रहा है। क्या # से% 23 को परिवर्तित करने के लिए पाइथन अनुरोधों को बल देने का कोई तरीका है या क्या मुझे बस उस हिस्से को कोड सौंपना होगा?पायथन अनुरोध करता है कि urlencode काम नहीं कर रहा है?
मैं एक फेसबुक fql multiquery बनाने की कोशिश कर रहा हूँ। जब मैं नीचे
fql_url = (
'https://graph.facebook.com/fql?q='
'{"user_sex":"SELECT sex FROM user WHERE uid=me()",'
'"friends":"SELECT uid, name FROM user WHERE uid IN '
'(SELECT uid2 FROM friend WHERE uid1 = me()) '
'AND not (sex in (SELECT sex FROM #user_sex)) '
' ORDER BY name"}'
'&access_token='+access_token
)
fql_url का उपयोग करें और requests.get (fql_url) चलाने के लिए, json लौटे
{u'error': {
u'code': 601,
u'message': u"(#601) Parser error: unexpected '{' at position 0.",
u'type': u'OAuthException'}
}
हालांकि जब मैं कोड हाथ इस
fql_url = (
'https://graph.facebook.com/fql?q=%7B%22'
'user_sex%22:%22SELECT%20sex%20FROM%20user%20WHERE%20uid=me()%22,%22'
'friends%22:%22SELECT%20uid,%20name%20FROM%20user%20WHERE%20uid%20IN%20'
'(SELECT%20uid2%20FROM%20friend%20WHERE%20uid1%20=%20me())%20'
'AND%20not%20(sex%20in%20(select%20sex%20from%20%23user_sex))%20%20'
'ORDER%20BY%20name%22%7D&'
'access_token='+access_token
)
सब कुछ के रूप में fql_url है काम करता है (जेसन वांछित डेटा है)।
मैंने पहले fql_url और हाथ कोडित fql_url दोनों की तुलना की है और दोनों को जेसन प्राप्त करने के लिए उसी यूआरएल का उपयोग किया जाना चाहिए। अनुरोध urlencode काम नहीं कर रहा है या क्या मैं यहाँ कुछ गलत कर रहा हूँ?
यह समझ में आता है। तो मूल रूप से मुझे पहले fql_url का उपयोग करना चाहिए और बस # 23 के साथ # को प्रतिस्थापित करना चाहिए या ऐसा करने के लिए एक और पारंपरिक तरीका है? – bab
मैंने जवाब देने के लिए व्यावहारिक तरीका जोड़ा –