将json键分离到不同的文件ansible中



我有一个大的JSON变量,不同班级的学生数据分别包含他们的名字和数字。变量是";数据";这是变量包含的内容:

{
"Class001": [
{
"Jesse": 001
},
{
"Adam": 002
}
],
"Class002": [
{
"Jill": 111
},
{
"Ray": 112
}
],
.....
}

使用ansible,我想分离键";Class00X";到一些不同的文件中。例如,Class001文件包含:

{
"Jesse": 001
},
{
"Adam": 002
},
.....

等等。我该怎么做?感谢

我用创建了一个文件.json

{
"Class001": [
{
"Jesse": "001"
},
{
"Adam": "002"
}
],
"Class002": [
{
"Jill": "111"
},
{
"Ray": "112"
}
]
}

这个剧本完成了任务:

- hosts: localhost
gather_facts: no
vars:
json: "{{ lookup('file', 'file.json') | from_json }}"
tasks:
- name: loop
copy:
dest: "files/{{ item.key }}.txt" 
content: "{{ item.value | to_nice_json }}"       
loop: "{{ json | dict2items }}"

这里创建文件files/class001.txtfiles/class002.txt

字典是存储学生姓名和数字的更好结构。可选地,存储字典而不是列出

- copy:
dest: "files/{{ item.key }}.yml"
content: "{{ item.value|combine|to_nice_yaml }}"
loop: "{{ json|dict2items }}"

给出

shell> cat files/Class001.yml 
Adam: '002'
Jesse: '001'
shell> cat files/Class002.yml 
Jill: '111'
Ray: '112

最新更新