将dict与csv一起使用时可能出现错误:";该任务包括一个带有未定义变量的选项。错误是';dict对象';没有属性';模式';
由于数据的性质,我试图让我的剧本在使用dict的同时使用csv[每个任务要求一行数据的不同部分,所以我不能使用列表?]。 BD和EPG在每个文件中始终只显示一次,必要时可用作密钥 我得到一个错误“任务包含一个带有未定义变量的选项”。由于变量(模式)在csv文件中显示为列标题,因此我必须有某种语法问题 我试图做的是通过csv文件一次循环一行,并让模式:“{{item.schema}}”计算为模式列下的特定行值,等等 剧本:将dict与csv一起使用时可能出现错误:";该任务包括一个带有未定义变量的选项。错误是';dict对象';没有属性';模式';,csv,ansible,Csv,Ansible,由于数据的性质,我试图让我的剧本在使用dict的同时使用csv[每个任务要求一行数据的不同部分,所以我不能使用列表?]。 BD和EPG在每个文件中始终只显示一次,必要时可用作密钥 我得到一个错误“任务包含一个带有未定义变量的选项”。由于变量(模式)在csv文件中显示为列标题,因此我必须有某种语法问题 我试图做的是通过csv文件一次循环一行,并让模式:“{{item.schema}}”计算为模式列下的特定行值,等等 剧本: tasks: - name: Read CSV
tasks:
- name: Read CSV
read_csv:
# Name of the csv
path: ./Create_EPGs_and_BDs.csv
dialect: excel
key: bd
# Creates register value to be used later
register: csv_data
#
##################################################
#Creates BD in MSO Template
##################################################
#
- name: Add a new BD
cisco.mso.mso_schema_template_bd:
<<: *aci_login
state: present
schema: "{{ item.schema }}"
template: "{{ item.template }}"
bd: "{{ item.bd }}"
vrf:
name: "{{ item.vrf }}"
loop: "{{ csv_data.dict|dict2items }}"
#
##################################################
#Creates EPG in MSO Template
##################################################
#
- 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 }}"
任务:
-名称:读取CSV
阅读(csv):
#csv的名称
路径:./Create_EPGs_和_BDs.csv
方言:excel
关键字:bd
#创建稍后使用的寄存器值
寄存器:csv_数据
#
##################################################
#在MSO模板中创建BD
##################################################
#
-名称:添加新的BD
cisco.mso.mso_模式_模板_bd:
dict2items
将把您的dict
转换成一个dict列表,形状类似于[{“key”:“该行的bd值”,“value”:{“schema”:“schema1”,…},…},…},…]
因此,您只需在项
和它引用的dict键之间添加.value
:
-名称:添加新的BD
cisco.mso.mso_模式_模板_bd:
请不要发布文本图像(或指向文本图像的链接)。只需在你的问题中包含数据。非常感谢对数据结构的深入了解,这就是我所缺少的。现在一切都好了,谢谢!