此问题在此处已有答案:
python yaml.dump bad indentation(2个答案)
20小时前关门了。
我是Python新手,所以我的问题可能很小,但我不知道如何解决它。我需要准备一个小脚本来修改yaml文件。我遇到的问题是,在保存文件后,列表中的元素在输出文件中被移到了左边。
以下是我的虚拟脚本:
import sys
import yaml
filename = sys.argv[1]
with open(filename, 'r') as f:
# Load the YAML content
data = yaml.safe_load(f)
# Here will be my logic
with open('newfile.yml', 'w') as f:
# Write the modified YAML content back to the file
yaml.dump(data, f, default_flow_style=False, sort_keys=False)
现在它只加载文件并将结果保存到另一个文件中,但保存的结果与原始文件不同。
以下是原始文件的示例:
my_config:
object1:
key1: value1
list_elements:
- path: 'file.xml'
mount_point: /deployments/file.xml
- path: 'another_file.yml'
mount_point: /deployments/another_file.yml
key3: value3
下面是保存的结果:
my_config:
object1:
key1: value1
list_elements:
- path: 'file.xml'
mount_point: /deployments/file.xml
- path: 'another_file.yml'
mount_point: /deployments/another_file.yml
key3: value3
list_elements中的所有条目都左移了,谁能告诉我为什么会发生这种情况以及如何解决这个问题?我只需要修改文件的特定部分,不想碰其他任何东西。
我使用了yaml.dump中的参数,但没有找到任何可以帮助我的东西。
1条答案
按热度按时间gojuced71#
看起来
pyyaml
库在这方面有一个开放的问题-甚至有一个提到的解决方案:https://github.com/yaml/pyyaml/issues/234