Ansible (read_csv): 如何在没有循环的情况下有效地将整个 CSV 列转换为列表?
Ansible (read_csv): How to convert entire CSV column into a list efficiently without loop?
我有大约 8 列的 CSV(大约 2200 行)。为简单起见,下面是一个快照
ID,fruit,currency
11,mango,USD
12,peach,GBP
13,apricot,EUR
目的是将fruit
列作为列表并写入另一个文件
["mango","peach","apricot"]
我已经使用循环完成了它,但这需要很长时间才能遍历更大的列表(下面是我完成的概念)
- name: "Read as a list"
read_csv:
path: ./fruit.csv
register: mycsv
- debug:
msg: '{{ item.fruit| join (',') }}'
loop: "{{mycsv.list}}"
是否有 efficient/better 方法可以将 read_csv 上方的特定列 convert/translate 放入列表中?
例如
fruit: "{{ mycsv.list|map(attribute='fruit')|list }}"
给出列表
fruit: [mango, peach, apricot]
我有大约 8 列的 CSV(大约 2200 行)。为简单起见,下面是一个快照
ID,fruit,currency
11,mango,USD
12,peach,GBP
13,apricot,EUR
目的是将fruit
列作为列表并写入另一个文件
["mango","peach","apricot"]
我已经使用循环完成了它,但这需要很长时间才能遍历更大的列表(下面是我完成的概念)
- name: "Read as a list"
read_csv:
path: ./fruit.csv
register: mycsv
- debug:
msg: '{{ item.fruit| join (',') }}'
loop: "{{mycsv.list}}"
是否有 efficient/better 方法可以将 read_csv 上方的特定列 convert/translate 放入列表中?
例如
fruit: "{{ mycsv.list|map(attribute='fruit')|list }}"
给出列表
fruit: [mango, peach, apricot]