使用Gspread和Python从谷歌表中获取所有列值

时间:2017-07-17 01:17:16

标签: python python-3.x gspread

所以我对Gspread for python 3有问题

当我做类似的事情时:

x = worksheet.cell(1,1).value
print(x)

然后我得到单元格1,1的值,在我的例子中是:

Nice

但是当我这样做时:

x = worksheet.col_values(1)
print(x)

然后我得到所有结果,如

'Nice', 'Cool','','','','','','','','','','','','','',''

所有空单元格,我不明白,因为我只是为了问我为什么我会得到所有'',空括号以及为什么其他结果也在括号中?我希望有类似的东西:

Nice
Cool

当我调用列的值时,这些是唯一的值。任何人都知道如何获得这样的结果?

根据这个https://github.com/burnash/gspread文件,它应该有效,但不是。

1 个答案:

答案 0 :(得分:2)

您将获得列表中包含的所有列数据。它从第一行开始,并将该列中的所有行提供给电子表格的底部(默认为1000行),包括空单元格。文档告诉你:

  

col_values(col)
返回列col中所有值的列表。

     

此列表中的空单元格将呈现为无。

这似乎已被改为返回空字符串,但原理是相同的。

要获得正确的值,请使用列表推导:

x = [item for item in worksheet.col_values(1) if item]

注意上述内容将删除项目之间的空白行,如果您尝试使用行号很重要的多个列,则可能会导致错位。由于它是一个列表,因此可以通过以下方式访问各个项目:

for item in x:
    print(item)