google sheet 方法:spreadsheets.get ...如何获取字段?

google sheet method: spreadsheets.get ... how to get field?

我正在尝试获取 sheet 上特定范围内的所有 backgroundColor。它嵌套得很深 json.

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

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

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

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

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

如果是我,那么循环也是我的选择,因为它让我可以精细地控制我想要获取的字段,并且还可以在需要时提取不同类型的数据。在你的情况下,如果它是你想要的 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),但我怀疑您永远不需要它。安全简单的方法是之后使用循环。