編集:私は問題を把握しました。 #user_sexの#は、Pythonリクエストによって%23に変換されていません。 #23%に変換するようにPythonリクエストを強制する方法はありますか?それとも、その部分を手作業でコードする必要がありますか?Pythonはurlencodeが機能しないことを要求しますか?
私はfacebook 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を渡したときに(jsonは望ましいデータを持っています)。
私は最初のfql_urlとfql_urlでコード化されたハンドの両方を比較しました。両方とも同じURLがjsonを取得するのに使用されるはずです。リクエストurlencodeが機能していないのですか、ここで何か間違っていますか?
それは意味があります。だから、基本的に最初のfql_urlを使って#23を#と置き換えるか、もっと一般的な方法でそれを行うべきでしょうか? – bab
私は実用的な方法を私に答えた –