1

私はpythonに非常に慣れていないので、私の無知を許してください。

Google スプレッドシートにデータを送信しようとしていますが、gspread を使用することにしました。

ただし、gspread では、OAuth-2.0 を使用してスプレッドシートへのアクセスを承認する必要があります。そのために、ドキュメントページのチュートリアルを使用しました。ただし、コードを実行すると:

import json
import gspread
from oauth2client.client import SignedJwtAssertionCredentials

json_key = json.load(open('test IGS-1859066a1c38.json'))
scope = ['https://spreadsheets.google.com/feeds']

credentials = SignedJwtAssertionCredentials(json_key['760 ... 6r9@developer.gserviceaccount.com'], json_key['-----BEGIN PRIVATE KEY-----\nMI ... 003d\n-----END PRIVATE KEY-----\n'], scope)
gc = gspread.authorize(credentials)

wks = gc.open("ITGS_TEST").sheet1

次のエラーが表示されます。

KeyError: '760 ... 6r9@developer.gserviceaccount.com'

これを修正する方法がわかりません。何が欠けているのかわかりません。誰かが意見を提供してくれれば幸いです。

前もって感謝します

編集: Sandeep107 のアドバイスに従い、コードを次のように変更しました。

SignedJwtAssertionCredentials(json_key['client_email'], json_key['private_key'], scope)

古いエラー コードは表示されなくなりましたが、代わりに次のエラーが表示されます。

    credentials = SignedJwtAssertionCredentials(json_key['client_email'],  json_key['private_key'], scope)
  File "F:\Python33\lib\site-packages\oauth2client-1.4.7-py3.3.egg\oauth2client\util.py", line 137, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "F:\Python33\lib\site-packages\oauth2client-1.4.7-py3.3.egg\oauth2client\client.py", line 1487, in __init__
    self.private_key = base64.b64encode(private_key)
  File "F:\Python33\lib\base64.py", line 58, in b64encode
    raise TypeError("expected bytes, not %s" % s.__class__.__name__)
TypeError: expected bytes, not str

繰り返しますが、どんな助けでも大歓迎です。

4

3 に答える 3

1

json_key['client_email'], json_key['private_key']をそのまま使用する必要があります。

実際の値に置き換える必要はありません。

于 2015-04-26T16:33:22.483 に答える