Как создать список внутри словаря с помощью python

#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'}]}}