美文网首页
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