¿Cómo puedo controlar qué forma escalar utiliza PyYAML para mis datos?
Tengo un objeto con un atributo de cadena corta y un atributo de cadena larga de varias líneas. Quiero escribir la cadena corta como un escalar citado de YAML, y la cadena de varias líneas como un escalar literal:
my_obj.short = "Hello"
my_obj.long = "Line1\nLine2\nLine3"
Me gustaría que el YAML se vea así:
short: "Hello"
long: |
Line1
Line2
Line3
¿Cómo puedo indicarle a PyYAML que haga esto? Si llamo ayaml.dump(my_obj)
, produce una salida tipo dict:
{long: 'line1
line2
line3
', short: Hello}
(No estoy seguro de por qué el tiempo es doble espacio así ...)
¿Puedo dictarle a PyYAML cómo tratar mis atributos? Me gustaría afectar tanto el orden como el estilo.