EDYCJA: znalazłem problem. # W #user_sex nie konwertuje na% 23 przez żądania Pythona. Czy istnieje sposób, aby zmusić wnioski Pythona, aby przekonwertować # do% 23, czy będę musiał po prostu ręcznie zakodować tę część?Python żąda urlencode nie działa?
Próbuję zrobić facebookowe multikwasy fql. Kiedy używam fql_url poniżej
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
)
i uruchomić requests.get (fql_url), JSON zwrócony jest
{u'error': {
u'code': 601,
u'message': u"(#601) Parser error: unexpected '{' at position 0.",
u'type': u'OAuthException'}
}
Jednak kiedy wręczyć kod z fql_url jak to
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
)
wszystko działa (json ma pożądane dane).
Porównywałem zarówno pierwszy plik fql_url, jak i kod fql_url z kodowaniem ręcznym, a oba powinny powodować, że ten sam adres URL będzie używany do uzyskania json. Czy żądania nie działają, czy też robię coś nie tak?
To ma sens. Więc zasadniczo powinienem użyć pierwszego fql_url i tylko zastąpić # z% 23 lub czy istnieje bardziej konwencjonalny sposób to zrobić? – bab
Dodałem pragmatyczną drogę do mnie odpowiedzi –