Как я могу контролировать, какую скалярную форму PyYAML использует для моих данных?

У меня есть объект с атрибутом short string и атрибутом long multi-line string. Я хочу записать короткую строку как скаляр с кавычками в YAML, а многострочную строку как буквальный скаляр:

my_obj.short = "Hello"
my_obj.long = "Line1\nLine2\nLine3"

Я бы хотел, чтобы YAML выглядел так:

short: "Hello"
long: |
  Line1
  Line2
  Line3

Как я могу проинструктировать PyYAML сделать это? Если я вызову yaml.dump(my_obj), он выдаст результат, похожий на диктант:

{long: 'line1

    line2

    line3

    ', short: Hello}

(Не уверен, почему длинный двойной интервал...)

Могу ли я продиктовать PyYAML, как обращаться с моими атрибутами? Я бы хотел влиять на порядок и стиль.

21
задан Anthon 15 February 2016 в 10:26
поделиться