Search code examples
formattingpython-3.xpyyaml

Change list formatting in PyYAML output


This is how PyYAML behaves on my machine:

>>> plan = {'Business Plan': ['Collect Underpants', '?', 'Profit']}
>>> print(yaml.dump(plan))
Business Plan: [Collect Underpants, '?', Profit]

What I want instead is this output (both is valid YAML):

Business Plan:
- Collect Underpants
- '?'
- Profit

Is there some kind of option that would do it?


Solution

  • You need to add the 'default_flow_style=False' argument to the call:

    In [6]: print(yaml.dump(plan, default_flow_style=False))
    Business Plan:
    - Collect Underpants
    - '?'
    - Profit