所以我在这方面花了很多时间,在我看来这应该是一个简单的解决方法。我正在尝试使用 Facebook 的身份验证在我的网站上注册用户,并且正在尝试在服务器端进行。我已经到了获得访问 token 的地步,当我去的时候:
https://graph.facebook.com/me?access_token=MY_ACCESS_TOKEN
我以字符串形式获取我正在寻找的信息,如下所示:
{"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"}
似乎我应该能够在此使用 dict(string)
但我收到此错误:
ValueError: dictionary update sequence element #0 has length 1; 2 is required
所以我尝试使用 Pickle,但收到此错误:
KeyError: '{'
我尝试使用 django.serializers
对其进行反序列化,但结果相似。有什么想法吗?我觉得答案必须很简单,而我只是愚蠢。感谢您的帮助!
最佳答案
这个数据是 JSON !如果您使用的是 Python 2.6+,则可以使用内置的 json
module 对其进行反序列化,否则您可以使用优秀的第三方 simplejson
module 。
import json # or `import simplejson as json` if on Python < 2.6
json_string = u'{ "id":"123456789", ... }'
obj = json.loads(json_string) # obj now contains a dict of the data
https://stackoverflow.com/questions/4917006/