Ton*_*res 4 python dictionary yaml pyyaml python-3.x
我已经搜索过,但没有找到太多这方面的信息。我正在编写一个 Python 脚本来获取字典列表并将其转储到 yaml 文件中。例如,我有如下代码:
import yaml
dict_1 = {'name' : 'name1',
'value' : 12,
'list' : [1, 2, 3],
'type' : 'doc'
}
dict_2 = {'name' : 'name2',
'value' : 100,
'list' : [1, 2, 3],
'type' : 'cpp'
}
file_info = [dict_1, dict_2]
with open('test_file.yaml', 'w+') as f:
yaml.dump(file_info, f)
Run Code Online (Sandbox Code Playgroud)
我得到的输出是:
- list:
- 1
- 2
- 3
name: name1
type: doc
value: 12
- list:
- 1
- 2
- 3
name: name2
type: cpp
value: 100
Run Code Online (Sandbox Code Playgroud)
当我真正想要的是这样的东西时:
- list:
- 1
- 2
- 3
name: name1
type: doc
value: 12
## Notice the line break here
- list:
- 1
- 2
- 3
name: name2
type: cpp
value: 100
Run Code Online (Sandbox Code Playgroud)
我尝试过放置\n和结尾字典,file_info.append('\n')在字典之间使用,用作None字典中的最后一个键,但到目前为止没有任何效果。任何帮助是极大的赞赏!
我正在使用 Pyyaml 5.4.1 和 Python 3.9。
您可以一次转储一个对象,然后在每个对象后面换一个新行。
with open('test_file.yaml', 'w+') as f:
for yaml_obj in file_info:
f.write(yaml.dump([yaml_obj]))
f.write("\n")
Run Code Online (Sandbox Code Playgroud)