2017-12-13 11 views
0

python core-backup.pyファイルを実行しようとするとJSON応答を取得できません:コードFB_SHORT_ACCESS_TOKENとFB_LONG_ACCESS_TOKENは同じです。UnicodeDecodeErrorのためにJSON応答を取得できませんか?

core-backup.py:

import os 
from os.path import join 
import requests 


def refresh_short_token(): 
    """ 
    Refresh short access token 
    """ 
    request_url = FB_URL + 'oauth/access_token' 
    request_payload = { 
     'grant_type': 'fb_exchange_token', 
     'client_id': FB_APP_ID, 
     'client_secret': FB_APP_SECRET, 
     'fb_exchange_token': FB_SHORT_ACCESS_TOKEN 
    } 
    response = REQ_SESSION.get(request_url, params=request_payload).json() 
    # dotenvfile = find_dotenv() 
    # load_dotenv(dotenvfile) 
    # dotenv.set_key(dotenvfile, "FB_LONG_ACCESS_TOKEN", response['access_token']) 
    FB_LONG_ACCESS_TOKEN = response["access_token"] 
    # PAYLOAD['access_token'] = dotenv.get_key(dotenvfile, "FB_LONG_ACCESS_TOKEN") 
    PAYLOAD['access_token'] = FB_LONG_ACCESS_TOKEN 

''' 
TODO: refresh_long_token() 
    A function to refresh the long term access token 
    Current validity: 60 days 
''' 

def get_feed(): 
    """ 
    Fetch feed 
    """ 
    request_url = FB_URL + LTTK_GROUP_ID + '/feed' 
    response = REQ_SESSION.get(request_url, params=PAYLOAD) 
    if response.status_code == 400: 
     refresh_short_token() 
    print(response.json()) 
    return response.json() 

def main(): 
    """ 
    Fetch posts from a Facebook group and populate in database 
    """ 
    get_feed() 

if __name__ == "__main__": 
    main() 

私はcore-backup.py ファイルを実行した後、Windows7のでUnicodeDecodeErrorを取得しています。この問題を解決する方法。より明確にするため を参照してくださいスクリーンショット:

enter image description here

ファイルのコード全体がここに見つけることができます: https://gist.github.com/anonymous/2ab9e023d631a7cc4dad15237104ee34

答えて

1

それはあなたのことが表示されますコードページはcp437に設定されています。 Pythonスクリプトを実行する前に、端末に次の行を入力して、pythonの出力をutf-8に設定してみてください。

set PYTHONIOENCODING=UTF-8 
python core-backup.py 
+0

感謝の男は魅力のように動作します。 –

0

UTF-8に応答エンコーディングを変更してみてください:

response.encoding = 'UTF-8' 
print(response.json()) 
関連する問題