美文网首页
python的yaml.load与yaml.dump输出不一致问

python的yaml.load与yaml.dump输出不一致问

作者: 左舷的风 | 来源:发表于2019-03-29 16:06 被阅读0次

使用yaml.dump写saltstack的sls文件发现跟yaml.load出来的再dump回去格式不一样

#!/usr/bin/python3
# -*-coding:utf-8-*-
data = yaml.load("""
    base:
      game_1.1.1.1: 
        - games.game1111
      game_2.2.2.2: 
        - games.game2222
""")

print(data)
print('#' * 50)
print(yaml.dump(data))

执行后输出,发现dump出来的格式竟然和data里传入的格式不一样:

{'base': {'game_1.1.1.1': ['games.game1111'], 'game_2.2.2.2': ['games.game2222']}}
##################################################
base:
  game_1.1.1.1: [games.game1111]
  game_2.2.2.2: [games.game2222]

一番查找,最后发现了dump中有个 default_flow_style=False 参数

print(yaml.dump(data, default_flow_style=False))

执行输出:

{'base': {'game_1.1.1.1': ['games.game1111'], 'game_2.2.2.2': ['games.game2222']}}
##################################################
base:
  game_1.1.1.1:
  - games.game1111
  game_2.2.2.2:
  - games.game2222

官方文档:https://pyyaml.org/wiki/PyYAMLDocumentation

相关文章

网友评论

      本文标题:python的yaml.load与yaml.dump输出不一致问

      本文链接:https://www.haomeiwen.com/subject/wvalbqtx.html