편집 : 문제를 알아 냈습니다. #user_sex의 #이 (는) 파이썬 요청에 의해 % 23 (으)로 변환되지 않습니다. 파이썬 요청을 % 23으로 변환하도록 강제하는 방법이 있습니까? 아니면 그 부분을 직접 코딩해야할까요?파이썬에서 urlencode가 작동하지 않는다고 요청합니까?
저는 facebook fql 멀티 쿼리를 만들려고합니다. 내가
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)를 실행하면 내가 코드이
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 손 때, 반환 된 JSON은 그러나
{u'error': {
u'code': 601,
u'message': u"(#601) Parser error: unexpected '{' at position 0.",
u'type': u'OAuthException'}
}
입니다 (json은 원하는 데이터를 가지고있다).
나는 첫 fql_url과 fql_url로 코딩 된 손을 비교했으며 둘 다 json을 얻는 데 사용되는 동일한 url을 가져와야합니다. urlencode 요청이 작동하지 않습니까? 아니면 제가 여기서 잘못된 것을하고 있습니까?
그건 의미가 있습니다. 그래서 기본적으로 첫 번째 fql_url을 사용하고 % 23으로 #을 대체해야합니까 아니면 더 일반적인 방법일까요? – bab
나는 실용적인 방법으로 나를 대답했다. –