首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pyYaml -出口无"-“

pyYaml -出口无"-“
EN

Stack Overflow用户
提问于 2019-02-28 10:22:28
回答 2查看 172关注 0票数 1

我需要出口dict到yaml,没有"-“

代码语言:javascript
复制
    export_dash_dict = {}
    export_dash_dict["dashboards"] = []
    for dashboard in dashboards_to_export:
        single_dashboard = {}
        single_dashboard[dashboard.title] = {}
        single_dashboard[dashboard.title]["owner"]          = dashboard.owner.username
        single_dashboard[dashboard.title]["description"]    = dashboard.description
        export_dash_dict["dashboards"].append(single_dashboard)

    final_yaml = yaml.dump(export_dash_dict, default_flow_style=False,default_style=None)

这就是皮亚姆出口我的信条的方式:

代码语言:javascript
复制
dashboards:
- Dashboard title 1:
    description: First
    owner: username1
- Dashboard title 2:
    description: Second
    owner: username2

通过在线分析,我得到的是:

代码语言:javascript
复制
{
  "dashboards": [
    {
      "Dashboard title 1": {
        "owner": "username1", 
        "description": "First"
      }
    }, 
    {
      "Dashboard title 2": {
        "owner": "username2", 
        "description": "Second"
      }
    }
  ]
}

但我需要这样的东西:

代码语言:javascript
复制
dashboards:
 Dashboard title 1:
    description: First
    owner: username1
 Dashboard title 2:
    description: Second
    owner: username2

使用在线解析器:

代码语言:javascript
复制
{
  "dashboards": {
    "Dashboard title 2": {
      "owner": "username2", 
      "description": "Second"
    }, 
    "Dashboard title 1": {
      "owner": "username1", 
      "description": "First"
    }
  }
}

这样,当我使用yaml.load时,我可以避免整个级别的数据。

我正在使用: default_flow_style=False参数,但我无法找到避免"-“这是YAML的标准吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-28 10:41:33

yaml转储正在正确地导出数据结构。您有一个具有一个键和一个值的字典(export_dash_dict)。一个键是dashboards,它的值是一个包含两个元素的列表。这两个元素是字典(我们将不讨论它们的内容,但它们有两个键值对)。

您要导出的数据结构不是一个具有一个键/值对(其中值是一个列表)的字典,而是一个具有两个键值对的字典。第一个键是Dashboard title 1,它的值是一个字典(有两个键-值对,我们在这里不详细介绍)。第二个键是Dashboard title 2,它的值是一个字典(同样,有两个键-值对,我们不会详细说明)。

如果希望yaml.dump编写这样的数据结构,则需要构造该数据结构。

票数 1
EN

Stack Overflow用户

发布于 2019-02-28 10:51:23

感谢torek,这是构建dict的正确方法:

代码语言:javascript
复制
    export_dash_dict = {}
    export_dash_dict["dashboards"] = {}
    for dashboard in dashboards_to_export:
        export_dash_dict["dashboards"][dashboard.title] = {}
        export_dash_dict["dashboards"][dashboard.title]["owner"]          = dashboard.owner.username
        export_dash_dict["dashboards"][dashboard.title]["description"]    = dashboard.description

    final_yaml = yaml.dump(export_dash_dict, default_flow_style=False,default_style=None)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54923346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档