Python ruamel не сохраняет формат для новой строки в yaml - PullRequest
0 голосов
/ 05 декабря 2018

Мой исходный файл yaml содержит символы новой строки после тире (-), которые я хочу сохранить после того, как я его выгружу

#  This is my yaml
color_1:
    blue: 
        -
# I want to preserve this newline after the dash
            width_1: "1"
            height_1: [1]
            size_1: 4
        -
            width_1: "2"
            height_2: [1,2,3,4]
            size_2: 4

Мой код

import sys
from ruamel.yaml import YAML
yaml = YAML()
yaml.preserve_quotes = True
yaml.boolean_representation = ['False', 'True']
yaml.indent(mapping=4, sequence=3, offset=0)

def main():
    config_path = "my_yaml_before.yaml"
    config = yaml.load(open(config_path))
    yaml.dump(config, sys.stdout)

if __name__ == "__main__":
    main()

После запуска сценария я вижуфайл дампа, который удаляет символ новой строки, как показано ниже, также я замечаю, что между элементом списка есть дополнительное пространство, которое я тоже не хочу получать

#  This is my yaml
color_1:
    blue:
# I want to preserve this newline after the dash
    -  width_1: "1"
       height_1: [1]
       size_1: 4
    -  width_1: "2"
       height_2: [1, 2, 3, 4]
       size_2: 4
...