Python Pickle.load () загружается неправильно - PullRequest
0 голосов
/ 09 сентября 2018
SCOPES_SHEETS = 'https://www.googleapis.com/auth/spreadsheets'

Дает разрешения на чтение / запись ^

def main():
    service_sheets = get_google_service('sheets', 'v4', 'token_sheets.json', SCOPES_SHEETS)
    with open('services.pkl', 'wb') as f:
        pickle.dump(service_sheets, f)
    with open('services.pkl', 'rb') as f:
        service_sheets = pickle.load(f)
    with open('serviceCopy.pkl', 'wb') as f:
        pickle.dump(service_sheets, f)

def get_google_service(type, version, token, scope):
    store = file.Storage(token)
    creds = store.get()
    if not creds or creds.invalid:
        flow = client.flow_from_clientsecrets('credentials.json', scope)
        creds = tools.run_flow(flow, store)
    return build(type, version, http=creds.authorize(Http()))

У меня есть программа, которую я хочу запустить в качестве службы в фоновом режиме. Это включает в себя чтение / запись вещей в листе Google. Для этого мне нужно создать сервис Google, но я не хочу делать это каждый раз, когда выполняется код, поэтому вместо этого я пытаюсь сохранить объект сервиса в файле. Почему-то файл service.pkl отличается от serviceCopy.pkl. Я пытался изменить кодировку для pickle.load(file, encoding='utf8'), но продолжаю получать файлы, которые не совпадают.

Насколько я понимаю, они должны быть точно такими же.

Я думаю, что проблема заключается в загрузке сохраненного файла, но я не уверен, что его вызывает.

Я использую Python 3.6.

...