Python Pickle.load()无法正确加载

时间:2018-09-09 03:52:23

标签: python python-3.x google-api pickle google-api-client

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.pklserviceCopy.pkl不同。我尝试过更改pickle.load(file, encoding='utf8')的编码,但是我一直在获取不匹配的文件。

据我了解,它们应该完全相同。

我认为问题在于加载保存的文件,但是我不确定是什么原因造成的。

我正在使用python 3.6。

0 个答案:

没有答案