python-3.x - 从 Python 3/boto3 使用 QuickSight API 创建具有多个数据集的模板
问题描述
对于具有多个数据集的模板,我有点坚持使用 QS API。boto3 的 API 说明了这一点(https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/quicksight.html#QuickSight.Client.create_template):
SourceEntity={
'SourceAnalysis': {
'Arn': 'string',
'DataSetReferences': [
{
'DataSetPlaceholder': 'string',
'DataSetArn': 'string'
},
]
},
我正在尝试将其传递给DataSetReferences
:
[{'DataSetArn': 'my-dummy-arn1',
'DataSetPlaceholder': 'my-dummy-placeholder1'},
{'DataSetArn': 'my-dummy-arn2',
'DataSetPlaceholder': 'my-dummy-placeholder2'},
{'DataSetArn': 'my-dummy-arn3',
'DataSetPlaceholder': 'my-dummy-placeholder3'}]
在我未经训练的眼睛看来,QS 期望 a list
of dicts
,这应该是我传递的数据结构。但是,我明白了:
botocore.errorfactory.InvalidParameterValueException:调用 UpdateTemplate 操作时发生错误 (InvalidParameterValueException):需要 1 个占位符。给定 3
我是否误读了 API 文档?
解决方案
好的,我找到了根本原因,这是用户错误。
万一其他人碰到这个:
检查手动配置的源分析(QS没有自动源分析创建/恢复/保存,既不是通过CLI,也不是API或其他方式)。
占位符的数量需要与源分析中的数据集数量相匹配。
推荐阅读
- sql - 如何仅选择没有禁止键值的记录
- java - 编译器插入了什么异常来处理 switch 表达式中的未知枚举值?
- python - 如何将嵌套字典转换为数据框
- selenium-webdriver - 如何为 Nunit 项目下的所有方法/类创建文档
- dolphindb - 为什么在 dolphindb 中创建流表时建议启用持久性功能?
- python - 来自 pandas 的 postgresql 中的实时数据处理
- go - 天变时 Gocron 不工作 (GOLANG)
- sql - 为 Localhost DB 创建新的 SQL Server 登录名/用户
- javascript - Lightbox fslightbox 问题,透明背景而不是白色
- powershell - Powershell 排序函数时间复杂度