Quindi ho passato molto tempo su questo, e mi sembra che dovrebbe essere una soluzione semplice. Sto cercando di utilizzare l'autenticazione di Facebook per registrare gli utenti sul mio sito e sto cercando di farlo dal lato server. Ho ottenuto al punto in cui ho il mio token di accesso, e quando vado a:Stringa al dizionario in Python
https://graph.facebook.com/me?access_token=MY_ACCESS_TOKEN
ottengo le informazioni che sto cercando come una stringa che è come questo:
{"id":"123456789","name":"John Doe","first_name":"John","last_name":"Doe","link":"http:\/\/www.facebook.com\/jdoe","gender":"male","email":"jdoe\u0040gmail.com","timezone":-7,"locale":"en_US","verified":true,"updated_time":"2011-01-12T02:43:35+0000"}
sembra che dovrei essere in grado di utilizzare dict(string)
su questo, ma sto ottenendo questo errore:
ValueError: dictionary update sequence element #0 has length 1; 2 is required
Così ho provato ad utilizzare Pickle, ma ha ottenuto questo err o:
KeyError: '{'
Ho provato ad utilizzare django.serializers
di de-serializzare, ma ha avuto risultati simili. qualche idea? Sento che la risposta deve essere semplice e sono solo stupida. Grazie per qualsiasi aiuto!
Se si desidera valutare la stringa come Python, potrebbe essere necessario modificare la stringa: '" verificato ": true' ha esito negativo a meno che non sia definito' true'. O potresti usare '" verificato ": True', o" "verificato": "true" '. –
@Matt: dubito che possa modificare il formato di output di graph.facebook.com. –
@Fred: Dato il titolo della domanda ("String to Dictionary in Python"), immagino che potrebbe cambiarlo da Python prima di chiamare 'ast.literal_eval()'. La tua risposta (revisionata) è giusta, tuttavia - un deserializzatore JSON è una soluzione migliore. –