簡體   English   中英

ruamel.yaml:修改dump()以在開始時添加額外的“-”

[英]ruamel.yaml: modify dump() to add extra '-' at the very start

我正在使用ruamel.yaml庫將字典轉儲到yaml文件中。 但是,它的行為並不符合我的期望。

我如何獲得:

---
- a: 
    - foo: bar
    - bar: foo

代替:

a:
    - foo: bar
    - bar: foo

yaml.dump()

我正在從中提取數據:

data = {
    'a': [
         {'foo':'bar'},
         {'bar':'foo'}
       ]
     }

具有相同功能的任何其他庫均已開放供投標。

您正在尋找的是在YAML實例上設置explicit_start = True 此外,您需要做的頂級如果你想有一個列表- a ,而不是只是a在第二行:

import sys
import ruamel.yaml

yaml_str = """\
---
-a:
    -foo: bar
    -bar: foo
"""

data = [{
    'a': [
         {'foo':'bar'},
         {'bar':'foo'}
       ]
     }]

yaml = ruamel.yaml.YAML()
yaml.explicit_start = True
yaml.dump(data, sys.stdout)

給出:

---
- a:
  - foo: bar
  - bar: foo

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM