如何使用Python在字典中构造列表完成Boto3创建Quicksight数据集操作
解决方法
你通过describe_data_set接口提取到的columns变量本身就完全匹配create_data_set要求的InputColumns参数结构,不需要做额外的格式转换,直接把变量赋值到对应参数位置即可。
import boto3 qs = boto3.client('quicksight') # 提取已有数据集的字段配置 describe_resp = qs.describe_data_set( AwsAccountId='xxxxxxxx', DataSetId='testdatasetv4' ) input_columns = describe_resp['DataSet']['PhysicalTableMap']['string']['RelationalTable']['InputColumns'] # 直接传入字段配置创建新数据集 create_resp = qs.create_data_set( AwsAccountId=data['AwsAccountId1'], DataSetId=data['DatasetId'], Name='testdataset', PhysicalTableMap={ 'string': { 'RelationalTable': { 'DataSourceArn': '替换为你的数据源实际Arn,不要误用上述接口返回的数据集Arn', 'Schema': 'public', 'Name': 'sales', 'InputColumns': input_columns } } }, # 必填参数,按需求选SPICE或者DIRECT_QUERY ImportMode='SPICE' )
注意事项
- 你之前写的循环打印逻辑仅用于调试,实际创建时不需要对
input_columns做遍历修改 describe_data_set返回的Arn是现有数据集的唯一标识,不要误填到DataSourceArn字段,该字段需要填写你关联的数据源(如RDS、S3等连接)的Arncreate_data_set要求必须传入ImportMode参数,你之前的示例中遗漏了该参数,请求时需要补充
内容的提问来源于stack exchange,提问作者user16624899
相关产品推荐
相关产品推荐

