Python-requests urlencode funktioniert nicht?

EDIT: ich habe herausgefunden, das problem. Die # in #user_sex nicht konvertieren zu %23 von python-requests. Gibt es eine Möglichkeit zu zwingen, python-Anforderungen zu konvertieren # %23 oder werde ich gerade zur hand haben-code, Teil?

Ich versuche, mich ein facebook fql multiquery. Wenn ich den fql_url unten

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
)

und ausführen von Anfragen.bekommen(fql_url), die json zurückgegeben wird

{u'error': {
    u'code': 601,
    u'message': u"(#601) Parser error: unexpected '{' at position 0.",
    u'type': u'OAuthException'}
}

Allerdings, wenn ich hand-code der fql_url als diese

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
)

alles funktioniert (die json hat den gewünschten Daten).

Habe ich gegenüber der ersten fql_url und der hand codiert, fql_url und beide sollte die gleiche url verwendet, um die json. Die Anforderungen urlencode funktioniert nicht oder mache ich etwas falsch hier?

InformationsquelleAutor bab | 2013-06-29

Schreibe einen Kommentar