首页 > 解决方案 > 谷歌表格方法:电子表格.get ...如何获取字段?

问题描述

我正在尝试在backgroundColor工作表上获取特定范围的所有内容。它在 json 中嵌套得很深。

似乎您不能只用 get 指定一个字段。https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/get

因此,您必须获取网格数据并浏览 json。

那是对的吗?这是唯一的方法吗?我必须遍历每个rowDataandvalues吗?

response = service.spreadsheets().get(spreadsheetId=key, ranges=range_, includeGridData=True).execute()

response.get('sheets')[0].get('data')[0].get('rowData')[0]["values"]

标签: pythongetfieldgoogle-sheets-api

解决方案


如果是我,那么循环也是我的选择,因为它可以让我精细控制我想要获取哪些字段,并且如果需要还可以提取不同类型的数据。就您而言,如果backgroundColor您愿意,那么这应该对您有用。

样本数据:

样本

代码:

# fetching A1:B2 range
rowData = response['sheets'][0]['data'][0]['rowData']

for row in rowData:
    for values in row['values']:
        print(values['userEnteredFormat']['backgroundColor'])

输出:

输出

笔记:

您也可以尝试添加fields参数以仅backgroundColor在响应中获取:

response = service.spreadsheets().get(spreadsheetId=key, ranges=range_, includeGridData=True, fields="sheets/data/rowData/values/userEnteredFormat/backgroundColor").execute()

回复:

回复

使用时fields,您可以进一步预处理您的数据(例如扁平化 json),但我怀疑您是否会需要它。安全且简单的方法是事后使用循环。


推荐阅读