我们使用PyYAML为不同的环境准备配置文件。但是我们的山药块失去了完整性。在
给input.yml
。。。在
pubkey: |
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSq7OPxRrQEBAQUAA4GNADCBiQKBgQCvRVUKp6pr4qBEnE9lviuyfiNq
QtG/OCyBDXL4Bh3FmUzfNI+Z4Bh3FmUx+z2n0FCv/4BpgHTDl8D95NPopWVo1RH2
UfhyMd6dQ/x9T5m+y38JMzmSVAk+Fqu8ya18+yQVOEyEIx3Gxpsgegow33gcxfjK
EsUgJHXcpw7OPxRrCQIDAQAB
-----END PUBLIC KEY-----
。。。使用python3执行这个程序。。。在
^{pr2}$。。。产生这个output.yml
。。。在
pubkey: '-----BEGIN PUBLIC KEY-----
MIGfMA0GCSq7OPxRrQEBAQUAA4GNADCBiQKBgQCvRVUKp6pr4qBEnE9lviuyfiNq
QtG/OCyBDXL4Bh3FmUzfNI+Z4Bh3FmUx+z2n0FCv/4BpgHTDl8D95NPopWVo1RH2
UfhyMd6dQ/x9T5m+y38JMzmSVAk+Fqu8ya18+yQVOEyEIx3Gxpsgegow33gcxfjK
EsUgJHXcpw7OPxRrCQIDAQAB
-----END PUBLIC KEY-----
'
有没有可能使用PyYAML保存我的块的结构?在
是的,
pyyaml
是的,但是您必须至少提供您自己的增强版本,这些版本至少包括safe_load使用的Scanner、Parser和Constructor,dump使用的发射器、序列化程序和Representer, 通过提供一个特殊的类似字符串的类来保存关于它的原始格式的信息。在这是添加到ruamel.yaml(免责声明:我是该包的作者)的一部分,因为它是从PyYAML派生的。使用拉梅尔亚姆勒预折叠的方法是:
或者更老的更像PyYAML的样式(您可以设置一些选项限制)
^{pr2}$这两种方法都能让你:
至少在Python2.7和3.5+中。在
indent=4
是必需的,因为RoundTripDumper
默认为两个空格缩进和 文件不被保留(不这样做可以简化对YAML文件的重新缩进)。在如果您不能切换到
ruamel.yaml
,那么您应该能够使用它的源代码来提取所需的所有更改,但是如果可以,您还可以使用它的其他功能,如注释和合并密钥名保留。在相关问题 更多 >
编程相关推荐