2017-12-13 2 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로 설정됩니다. 파이썬 스크립트를 실행하기 전에 터미널에 다음 줄을 입력하여 파이썬 출력을 utf-8로 설정해보십시오.

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

감사 인사는 매력처럼 작동합니다. –

0

UTF-8에 응답 인코딩을 변경해보십시오 :

response.encoding = 'UTF-8' 
print(response.json()) 
관련 문제