Вывод yaml в формате dict - PullRequest
2 голосов
/ 13 марта 2020

У меня есть список dict, который выглядит следующим образом

data = {'items': [{'id': '1', 'desc': 'Item 1', 'cat': 'cat1'}], 'categories': [{ 'id': 'cat1', 'desc': 'category number 1' }]}

Я хочу вывести его в следующем формате yaml

---
items:
    - { id: 'it1', desc: 'item number 1', cat: 'cat1' }
categories:
    - { id: 'cat1', desc: 'category number 1' }

с помощью yaml.dump(data) выводит yaml в следующий формат

categories:
- desc: category number 1
  id: cat1
items:
- cat: cat1
  desc: Item 1
  id: '1'

Что мне нужно добавить, чтобы изменить это? Я попытался установить default_flow_style=False без разницы.

1 Ответ

2 голосов
/ 13 марта 2020

В PyYAML опция default_flow_style имеет три различных значения:

  • True: все выводится в стиле потока
  • False: все выводится в блоке style
  • None: в потоковом режиме сбрасывается только самый низкий уровень диктов и списков

Мы изменили значение по умолчанию с None на False в версии 5.1, потому что многие люди жаловались на это. Так что вам нужно default_flow_style=None.

...