Amazon web services 使用Boto3放置json数据管道定义

Amazon web services 使用Boto3放置json数据管道定义,amazon-web-services,boto3,amazon-data-pipeline,Amazon Web Services,Boto3,Amazon Data Pipeline,我有一个json格式的数据管道定义,我想用Python中的Boto3来“放置”它 我知道您可以通过AWS CLI使用来实现这一点,但Boto3(和)都使用a,将定义拆分为pipelineObjects、parameterObjects和parameterValues 我是否需要编写代码将json定义转换为API/Boto所期望的定义?如果是这样的话,有没有这样的库?AWS CLI有,所以我可以借用它 AWS CLI有,所以我可以借用一下 您可以使用以下形式的python函数将数据管道导出的JSO

我有一个json格式的数据管道定义,我想用Python中的Boto3来“放置”它

我知道您可以通过AWS CLI使用来实现这一点,但Boto3(和)都使用a,将定义拆分为
pipelineObjects
parameterObjects
parameterValues


我是否需要编写代码将json定义转换为API/Boto所期望的定义?如果是这样的话,有没有这样的库?

AWS CLI有,所以我可以借用它

AWS CLI有,所以我可以借用一下

您可以使用以下形式的python函数将数据管道导出的JSON格式转换为boto3所期望的pipelineObjects格式

def convert_to_pipeline_objects(pipeline_definition_dict):
    objects_list = []
    for def_object in pipeline_definition_dict['objects']:
        new_object = {
            'id': def_object['id'],
            'name': def_object['name'],
            'fields': []
        }
        for key in def_object.keys():
            if key in ('id', 'name'):
                continue
            if type(def_object[key]) == dict:
                new_object['fields'].append(
                    {
                        'key': key,
                        'refValue': def_object[key]['ref']
                    }
                )
            else:
                new_object['fields'].append(
                    {
                        'key': key,
                        'stringValue': def_object[key]
                    }
                )
        objects_list.append(new_object)

您可以使用以下形式的python函数将数据管道导出的JSON格式转换为boto3所期望的pipelineObjects格式

def convert_to_pipeline_objects(pipeline_definition_dict):
    objects_list = []
    for def_object in pipeline_definition_dict['objects']:
        new_object = {
            'id': def_object['id'],
            'name': def_object['name'],
            'fields': []
        }
        for key in def_object.keys():
            if key in ('id', 'name'):
                continue
            if type(def_object[key]) == dict:
                new_object['fields'].append(
                    {
                        'key': key,
                        'refValue': def_object[key]['ref']
                    }
                )
            else:
                new_object['fields'].append(
                    {
                        'key': key,
                        'stringValue': def_object[key]
                    }
                )
        objects_list.append(new_object)