以dict格式输出yaml

Outputting yaml in dict format

我有一个看起来像这样的字典列表

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 没有区别。

在 PyYAML 中,选项 default_flow_style 具有三个不同的值:

  • True: 一切都以流式转储
  • False:所有内容都以块形式转储
  • None: 只有最底层的dicts和lists被转储为flow style

我们在 5.1 版中将默认值从 None 更改为 False,因为很多人对此表示抱怨。所以你需要 default_flow_style=None.