如何使用 Pyyaml 在序列之间添加换行符?
How to add a newline between sequences with Pyyaml?
我已经搜索过了,但没有找到太多这方面的信息。我正在编写一个 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)
我得到的输出是:
- list:
- 1
- 2
- 3
name: name1
type: doc
value: 12
- list:
- 1
- 2
- 3
name: name2
type: cpp
value: 100
当我真正想要的是这样的时候:
- 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
我尝试将 \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")
我已经搜索过了,但没有找到太多这方面的信息。我正在编写一个 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)
我得到的输出是:
- list:
- 1
- 2
- 3
name: name1
type: doc
value: 12
- list:
- 1
- 2
- 3
name: name2
type: cpp
value: 100
当我真正想要的是这样的时候:
- 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
我尝试将 \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")