2012-05-21 44 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']