Python: получить значение из списка словаря - PullRequest
0 голосов
/ 14 июля 2020

У меня есть список таких dicts:

    [{'sftp_conn': 'conn_1', 'sftp_path': 'path_1'}, 
     {'sftp_conn': 'conn_2', 'sftp_path': 'path_2'}
    ]

Я знаю, как получить значения из списка значений

Я хочу l oop каждое в списке и присвоить значения переменным

  id =1   sftp_conn = 'conn_1' , sftp_path = 'path_1'

, затем

  id=2  sftp_conn = 'conn_2' , sftp_path = 'path_2'

У меня есть код Airflow, как показано ниже, поэтому я хочу повторить и передать значения в sftp_path и sftp_conn_id

    for count, sftp in enumerate(sftp_list):
                s3_to_sftp = S3ToSftpOperator(
                    task_id=f's3_to_sftp_{count}',
                    sftp_path=  ,
                    sftp_conn_id= ,
                    s3_conn_id=S3_CONN_ID,
                )

Ответы [ 2 ]

1 голос
/ 14 июля 2020

Вам просто нужно перечислить список, передавая start=1, чтобы начать отсчет с 1 вместо 0. Пожалуйста, дайте мне знать, если это не то, что вы имели в виду.

li = [{'sftp_conn': 'conn_1', 'sftp_path': 'path_1'},{'sftp_conn': 'conn_2', 'sftp_path': 'path_2'}]

for item in enumerate(li, start=1):
    taskID, sftp_conn, sftp_path = item[0], item[1]['sftp_conn'], item[1]['sftp_path']
    #print(taskID, sftp_conn, sftp_path)

Когда эта строка печати без комментариев, это будет вывод для указанного выше списка:

1 conn_1 path_1
2 conn_2 path_2
0 голосов
/ 14 июля 2020

Вы можете легко перебирать его и использовать метод values ​​() dict.

d = [{'sftp_conn': 'conn_1', 'sftp_path': 'path_1'}, 
    {'sftp_conn': 'conn_2', 'sftp_path': 'path_2'}
    ]
    
x = [(' '.join(i.values())).split(' ') for i in d]
v1, v2, v3, v4 = x[0][0], x[0][1], x[1][0], x[1][1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...