python gspread 库仅写入标记为 'sheet1' 的工作表

python gspread library only writes to worksheet labeled 'sheet1'

我的sheet名为'doc_name',它有两个作品sheet,'sheet1'和'sheet2'。但是,我只能将数据写入标记为 'sheet1'?

的作品sheet

这是限制还是我做错了什么?

这有效,

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

但这失败了,

wks = gc.open("doc_name").sheet2

给出这个错误,

AttributeError: 'Spreadsheet' 对象没有属性 'sheet2'

我也注意到这失败了,

wks = gc.open("doc_name").Sheet1

...我使用大写 'S'.. 并且只有当我指定小写时它才会写入 .sheet1

如何在不编写代码的情况下写入作品sheet...wks = gc.open("doc_name").sheet1?

这是因为 gspread 仅实施 sheet1 让您检索传播中的第一个 sheet sheet 作为快捷方式.

source code 你可以看到 sheet1 的实现是使用 get_worksheet(0)

@property
def sheet1(self):
    """Shortcut property for getting the first worksheet."""
    return self.get_worksheet(0)

所以如果你想检索其他sheets,你需要使用其他方法,如:

1.specify index 作为一个整数表示 sheet 从 0 开始打开的位置:

wks = gc.open("doc_name").get_worksheet(index)

2.specify sheet 的 title 以字符串形式打开:

wks = gc.open("doc_name").worksheet(title)

也就是说,在你的情况下,要获得 sheet2 你可能可以使用

wks = gc.open("doc_name").get_worksheet(1)

client = gspread.authorize(creds)

sheet = client.open('name').worksheet('name/title')