Я получаю python словарь от AWS, который отформатирован как следующий пример объекта:
{'ResponseMetadata': {'NOT IMPORTANT'},
'hasMoreResults': True,
'marker': '{"NOT IMPORTANT"}',
'pipelineIdList': [{'id': 'df-0001',
'name': 'Blue'},
{'id': 'df-0002',
'name': 'Orange'},
{'id': 'df-0003',
'name': 'Green'},
{'id': 'df-0004',
'name': 'Red'},
{'id': 'df-0005',
'name': 'Purple'}
]}
Я хочу запросить name
ввода в pipelineIdList
и получите id
, который соответствует ему. Например, если вы выполняете поиск, используя строку ввода «Red», вы получите возвращаемое значение «df-0004»
Мой код выглядит следующим образом:
import boto3
def findId(pipeline_list, inputString):
for dict in pipeline_list:
if dict['pipelineIdList']['name'] == inputString:
return dict['id']
def main():
inputString = "Red"
datapipeline = boto3.client('datapipeline')
pipeline_list = datapipeline.list_pipelines() //This line returns a Dict like the one above
result = findId(pipeline_list, inputString)
print(result)
if __name__ == "__main__":
main()
print(result)
в этом случае с inputString="Red"
следует вывести значение df-0004
, но вместо этого оно печатает абсолютно ничего. Любая помощь в решении этой проблемы будет принята с благодарностью.