2016-04-24 11 views
0

私はDjango 1.9.5を使用していますが、python social authが提供するデータに問題があります。私はデータを取得しましたが、アクセスできません。これは私が "印刷VARS(さえずり)"、この私が、私としてpythonソーシャル認証のデータにアクセスできない

{'user_id': 123, 'uid': u'2413671427750', '_user_cache': <User: quintana>, '_state': <django.db.models.base.ModelState object at 0x7fa3d86fc2d0>, 'provider': u'twitter', 'extra_data': u'{"access_token": {"oauth_token_secret": "Afkasdasdas21zxbxcbn", "oauth_token": "2468cxcpqsldkenI56", "x_auth_expires": "0", "user_id": "455793463", "screen_name": "puertoRico"}, "id": 455793463}', 'id': 123} 

答えて

0

を取得したデータを行うと、端末が私にこのエラー

""TypeError: string indices must be integers"" 

を与える私のコード

def save_auth_data_session(request): 
    if request.user: 
     twitter = request.user.social_auth.get(provider ='twitter') 
     print twitter.extra_data['access_token'] 

ですprint vars(twitter)の出力から見ることができます - extra_dataはシリアライズされた辞書(文字列)'extra_data': u'{...}'を格納します。

まず、デシリアライズする必要があります。

import json 

twitter = request.user.social_auth.get(provider ='twitter') 
extra_data = json.loads(twitter.extra_data) # will give you a python dictionary 
print extra_data['access_token'] 
+0

これは完全に機能しました。ありがとうございました! 。それが連載されたことを知らなかった、私はdjangoで新しいです – hreluz

+0

それは本当にdjangoに関連していないベースのpythonのものです。 extra_data宣言で引用符に注意してください。 – crash843

関連する問題