无法同时从 a google sheet 的前三列读取数据

Can't read data simultaneously from the first three columns of a google sheet

我正在尝试使用 gspread 从 google sheet 的前三列读取数据。我感兴趣的三列是 IDNAMESYMBOL。 sheet 的名称是 testFile

如果我像下面这样尝试,我可以从第一列中获取数据。

client = authenticate()
sh = client.open("testFile")
worksheet = sh.get_worksheet(0)

for item in worksheet.col_values(1):
    print(item)

但是,我希望同时解析三列的数据。 如果我可以使用列 headers.

读取值会更好

我知道我可能会这样尝试获取值,但这样我最终会收到 quotaExceeded 错误或类似的错误,因为它的节奏很慢。

for i in range(1, worksheet.row_count + 1):
   row = worksheet.row_values(i)
   if row[0]=='ID':continue
   print(row[0],row[1],row[2])

How can I read data from the first three columns of a google sheet?

你的情况,下面的修改怎么样?

发件人:

for item in worksheet.col_values(1):
    print(item)

收件人:

values = worksheet.get_all_values()
obj = {}
for e in zip(*values):
    obj[e[0]] = list(e[1:])

print(obj)
  • 在此修改中,所有值都通过一次 API 调用检索。并且,检索到的值将转换为 object 作为 header 标题的键。
    • 例如,当使用示例电子表格时,您可以通过 obj["NAME"] 检索“NAME”列的值。

或者,

收件人:

values = worksheet.get_all_records()
res = [e["NAME"] for e in values] # or e["ID"] or e["SYMBOL"]
print(res)
  • 在此修改中,您可以检索“NAME”列的值。

参考文献: