6

を使用してスプレッドシートを更新してgspreadいます。このプロセスには約 1 時間かかります。約 200 のスプレッドシートがあります。シートの更新に約 30 分かかるようで、接続が切断されます。ログインを維持する方法はありますか? 約 30 秒ごとに別のシートを開いて書き込んでいるので、接続を維持していると思いました。

ステートメントを使用できtryます。それが再ログインを爆撃する場合。誰かがより良い方法を持っているかどうか疑問に思っていましたか?

次の例の簡単な例を使用することに慣れていgspreadます。

gc = gspread.login('thedude@abid.es', 'password')
sht1 = gc.open_by_key('0BmgG6nO_6dprdS1MN3d3MkdPa142WFRrdnRRUWl1UFE')

これをキープアライブ接続ログインに変更して到達するにはどうすればよいsht1ですか?

4

1 に答える 1

4

接続を維持するには、永続的な接続を使用する必要があります。

したがって、メインドキュメントを確認すると:

http://burnash.github.io/gspread/#gspread.Client

gspread.loginメソッドが のインスタンスであることがわかりますClient。ヘッダーをClient受け入れることができます。http

http://burnash.github.io/gspread/#gspread.httpsession.HTTPSession

次に、接続にこのヘッダーを追加します。Connection: Keep-Alive

import gspread
headers = gspread.httpsession.HTTPSession(headers={'Connection':'Keep-Alive'})
con = gspread.Client(auth=('you@gmail.com','password'),http_session=headers)
con.login()
con.open_by_key('....')

次に、セッションヘッダーの出力を取得すると:

print con.session.headers
Out[5]: {'Authorization': u'GoogleLogin auth=xxxxxxx', 'Connection': 'Keep-Alive'}

永続的な接続の詳細については、次のリンクを参照してください。

http://en.wikipedia.org/wiki/HTTP_persistent_connection

http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html

コードの詳細についてはgspread httpsession、以下をご覧ください。

https://github.com/burnash/gspread/blob/master/gspread/httpsession.py

于 2014-05-09T16:22:40.197 に答える