2

gdata-2.0.17.tar.gz を使用しています。

次のコードが 2 番目の "for row in ssc.GetListFeed" で失敗するのはなぜですか?

#!/usr/bin/python
import gdata.spreadsheet.service

key = '1AjklhasdfLJK09j2f3nFLKnff9hf28fhGFAklnf8223'

ssc = gdata.spreadsheet.service.SpreadsheetsService()
ssc.email = 'something'
ssc.password = 'something'
ssc.ProgrammaticLogin()

for row in ssc.GetListFeed(key=key).entry:
    for key in row.custom:
        print str(key) + ':' + str(row.custom[key].text)
    print

for row in ssc.GetListFeed(key=key).entry:
    for key in row.custom:
        print str(key) + ':' + str(row.custom[key].text)
    print

失敗は

Traceback (most recent call last):
  File "./test.py", line 16, in <module>
    for row in ssc.GetListFeed(key=key).entry:
  File "/home/someone/something/gdata/spreadsheet/service.py", line 252, in GetListFeed
    converter=gdata.spreadsheet.SpreadsheetsListFeedFromString)
  File "/home/someone/something/gdata/service.py", line 1108, in Get
    'reason': server_response.reason, 'body': result_body}
gdata.service.RequestError: {'status': 400, 'body': 'The spreadsheet at this URL could not be found. Make sure that you have the right URL and that the owner of the spreadsheet hasn&#39;t deleted it.', 'reason': 'Bad Request'}

SpreadsheetsService オブジェクトは、何らかの方法でクエリ間でリセットする必要がありますか?

4

1 に答える 1

1

ここでの問題は変数だと思いますkey-ここで定義しています:

key = '1AjklhasdfLJK09j2f3nFLKnff9hf28fhGFAklnf8223'

しかし、ここでも:

for key in row.custom:

変数はループが終了した後もその定義を保持するため、スプレッドシートのキー変数名をsheet_key(またはそれ以上の名前に) 変更してみて、期待どおりに完了するかどうかを確認してください。以下のコードで動作を確認できます。

In [1]: key = 'abcdef'

In [2]: for key in ['one', 'two', 'three']:
   ...:     pass
   ...: 

In [3]: key
Out[3]: 'three'
于 2012-12-27T23:32:47.623 に答える