如何使用 gspread 从电子表格中获取元数据?
How can I get metadata from a spreadsheet using gspread?
我有一个包含大量数据和元数据的传播sheet,我正在尝试在 python 3.7 到 gspread
中访问它。我已经设法使用 batch_update
方法将元数据添加到 sheet,该方法调用 batchUpdate in the API. However I can not find a way to do a metadata search,因为 dataFilter
类型不是 batchUpdate
的有效输入,我不能找到 search
调用的实现。
payload = {
"requests": [\
{\
"createDeveloperMetadata": {
"developerMetadata": {
"metadataKey": "Hello",
"metadataValue": " World",
"location": {
"spreadsheet": True
},
"visibility": "DOCUMENT"
}
}
}
]
}
spreadsheet.batch_update(payload)
关于如何检索我添加的元数据有什么建议吗?
- 您想从电子表格中检索您放置的开发者元数据。
- 您想通过 python.
使用 gspread 来实现此目的
- 您已经能够使用表格获取和放置电子表格的值 API。
如果我的理解是正确的,这个答案怎么样?请将此视为几个可能的答案之一。
问题和解决方法:
遗憾的是,在目前阶段,开发者元数据无法使用gspread直接获取,而开发者元数据可以使用batch_update
的方法放入。 (我认为这可能会在未来的更新中得到解决。)因此,作为当前的解决方法,我想建议通过使用 gspread 的凭据来使用 google-api-python-client。
修改后的脚本:
from apiclient import discovery
service = discovery.build('sheets', 'v4', credentials=credentials)
spreadsheetId = '###' # Please set the Spreadsheet ID.
body = {'dataFilters': [{'developerMetadataLookup': {'metadataKey': 'Hello'}}]}
request = service.spreadsheets().developerMetadata().search(
spreadsheetId=spreadsheetId, body=body)
response = request.execute()
print(response)
- 在此修改后的脚本中,
client = gspread.authorize(credentials)
的 credentials
用于 service = discovery.build('sheets', 'v4', credentials=credentials)
。
- 当上述脚本为运行时,搜索
Hello
的metadataKey
,返回结果。
参考:
如果这不是您想要的方向,我深表歉意。
我有一个包含大量数据和元数据的传播sheet,我正在尝试在 python 3.7 到 gspread
中访问它。我已经设法使用 batch_update
方法将元数据添加到 sheet,该方法调用 batchUpdate in the API. However I can not find a way to do a metadata search,因为 dataFilter
类型不是 batchUpdate
的有效输入,我不能找到 search
调用的实现。
payload = {
"requests": [\
{\
"createDeveloperMetadata": {
"developerMetadata": {
"metadataKey": "Hello",
"metadataValue": " World",
"location": {
"spreadsheet": True
},
"visibility": "DOCUMENT"
}
}
}
]
}
spreadsheet.batch_update(payload)
关于如何检索我添加的元数据有什么建议吗?
- 您想从电子表格中检索您放置的开发者元数据。
- 您想通过 python. 使用 gspread 来实现此目的
- 您已经能够使用表格获取和放置电子表格的值 API。
如果我的理解是正确的,这个答案怎么样?请将此视为几个可能的答案之一。
问题和解决方法:
遗憾的是,在目前阶段,开发者元数据无法使用gspread直接获取,而开发者元数据可以使用batch_update
的方法放入。 (我认为这可能会在未来的更新中得到解决。)因此,作为当前的解决方法,我想建议通过使用 gspread 的凭据来使用 google-api-python-client。
修改后的脚本:
from apiclient import discovery
service = discovery.build('sheets', 'v4', credentials=credentials)
spreadsheetId = '###' # Please set the Spreadsheet ID.
body = {'dataFilters': [{'developerMetadataLookup': {'metadataKey': 'Hello'}}]}
request = service.spreadsheets().developerMetadata().search(
spreadsheetId=spreadsheetId, body=body)
response = request.execute()
print(response)
- 在此修改后的脚本中,
client = gspread.authorize(credentials)
的credentials
用于service = discovery.build('sheets', 'v4', credentials=credentials)
。 - 当上述脚本为运行时,搜索
Hello
的metadataKey
,返回结果。
参考:
如果这不是您想要的方向,我深表歉意。