2012-05-21 45 views
0

随着django-social-auth,它可以让你捕捉到某些细节和结果的Dropbox的用户extra_data如下所示迭代通过JSON场在Django

{"access_token": "oauth_token_secret=XXXXXXXXXXXX&oauth_token=YYYYYYYYYYY", "7200": null, "id": null} 

的models.py设置如下。

class UserSocialAuth(models.Model): 
    """Social Auth association model""" 
    user = models.ForeignKey(User, related_name='social_auth') 
    provider = models.CharField(max_length=32) 
    uid = models.CharField(max_length=255) 
    extra_data = JSONField(blank=True) 

如何分别访问oauth_token和oauth_token_secret?

回答

0

对于解析access_token,可以使用http://docs.python.org/library/urlparse.html#urlparse.parse_qs

解析给定为一个字符串参数(类型application/x-WWW窗体-urlencoded的数据)的查询字符串。数据作为字典返回。字典键是唯一的查询变量名称,值是每个名称的值列表。

1

解析与simplejson模块JSON数据:

from django.utils.simplejson import loads 

data = {"access_token": "oauth_token_secret=XXXXXXXXXXXX&oauth_token=YYYYYYYYYYY", "7200": null, "id": null} tokens = parse_qs(loads(data)['access_token']) 

json_dict = loads(data) 
access_token = json_dict['access_token'] 

然后用什么扬建议您解析存储在access_token查询字符串:

from urlparse import parse_qs 

tokens = parse_qs(access_token) 

print tokens['oauth_token_secret'] 
print tokens['oauth_token']