首页 > 解决方案 > 是否有一个示例说明如何在 Ansible 中循环遍历 csv 文件并将值放入 dict 而不是列表中?

问题描述

我正在尝试学习如何遍历来自 csv 的数据并将其放入字典而不是列表中。我可以使它与列表一起使用,但这样做对于需要运行多个任务的 CSV 没有帮助,每个任务只使用一些相同的数据,因为那样我就必须为每个任务创建一个新的 CSV 并且在每个任务中调用不同的 csv。由于每个任务中的大多数数据都是相同的,我宁愿从同一个 csv 中提取所有数据并使用 dict 来指定我当时想要使用的特定单元格的数据。

有没有办法将从 csv 中提取的数据放入字典中?

我的剧本:

  tasks:
  - name: Read CSV
    read_csv:
     path: ./constructs.csv
     dialect: excel
    register: csv_data

  - name: Add a new BD
    cisco.mso.mso_schema_template_bd:
    <<: *login
    state: present
    schema: "{{ item.schema }}"
    template: "{{ item.template }}"
    bd: "{{ item.bd }}"
   loop: "{{ csv_data.dict|dict2items }}"



  - name: Add a new EPG
    cisco.mso.mso_schema_template_anp_epg:
     <<: *aci_login
     state: present
     schema: "{{ item.schema }}"
     template: "{{ item.template }}"
     anp: "{{ item.app_profile }}"
     epg: "{{ item.epg }}"
     bd:
      name: "{{ item.bd }}"
    loop: "{{ csv_data.dict|dict2items }}"

如果我运行上述(带有适当的标题/等以上任务:它会简单地跳过我的所有任务。跳过的原因是“列表中没有项目”。

标签: csvansible

解决方案


推荐阅读