#python #python-3.x #boto3 #amazon-quicksight
Вопрос:
Я пытаюсь автоматизировать создание набора данных в quicksight с помощью Boto3. но в какой-то момент я застрял . пожалуйста, кто-нибудь помогите решить эту проблему. Вот мой код :
qs = boto3.client('quicksight') response = qs.describe_data_set( AwsAccountId='xxxxxxxx', DataSetId='testdatasetv4' ) columns =response['DataSet']['PhysicalTableMap']['string']['RelationalTable']['InputColumns'] for dic in columns: for key in dic: print({dic[key]})
Мне нужен такой вывод:
response1 = Client.create_data_set( AwsAccountId=data['AwsAccountId1'], DataSetId=data['DatasetId'], Name='testdataset', PhysicalTableMap={ 'string': { 'RelationalTable': { 'DataSourceArn':response['Arn'], 'Schema': 'public', 'Name': 'sales', 'InputColumns': [ { 'Name': 'salesid', 'Type': 'INTEGER' }, { 'Name': 'listid', 'Type': 'INTEGER' }, { 'Name': 'sellerid', 'Type': 'INTEGER' }, { 'Name': 'buyerid', 'Type': 'INTEGER' }, { 'Name': 'eventid', 'Type': 'INTEGER' }, { 'Name': 'dateid', 'Type': 'INTEGER' }, { 'Name': 'qtysold', 'Type': 'INTEGER' }, { 'Name': 'pricepaid', 'Type': 'DECIMAL' }, { 'Name': 'commission', 'Type': 'DECIMAL' }, { 'Name': 'saletime', 'Type': 'DATETIME' }, ] } } },
Как я могу добавить вышеуказанные входные столбцы с помощью кода. Я могу извлечь входные столбцы, но у меня не было идеи добавлять входные столбцы . пожалуйста, помогите мне сделать это.
Ответ №1:
Вот пример создания словаря и добавления различных вложенных элементов. Вам нужно будет адаптироваться к решению.
columns = ['key1', 'key2', 'key3'] vals = ['1', '2', '3'] mydict = {} mydict['firstkey'] = 1 mydict['anotherkey'] = {} mydict['anotherkey']['secondkey'] = 2 mydict['needalist'] = {} mydict['needalist']['mylist'] = [{k:vals[i]} for i, k in enumerate(columns)] mydict {'firstkey': 1, 'anotherkey': {'secondkey': 2}, 'needalist': {'mylist': [{'key1': '1'}, {'key2': '2'}, {'key3': '3'}]}}