我需要出口dict到yaml,没有"-“
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)这就是皮亚姆出口我的信条的方式:
dashboards:
- Dashboard title 1:
description: First
owner: username1
- Dashboard title 2:
description: Second
owner: username2通过在线分析,我得到的是:
{
"dashboards": [
{
"Dashboard title 1": {
"owner": "username1",
"description": "First"
}
},
{
"Dashboard title 2": {
"owner": "username2",
"description": "Second"
}
}
]
}但我需要这样的东西:
dashboards:
Dashboard title 1:
description: First
owner: username1
Dashboard title 2:
description: Second
owner: username2使用在线解析器:
{
"dashboards": {
"Dashboard title 2": {
"owner": "username2",
"description": "Second"
},
"Dashboard title 1": {
"owner": "username1",
"description": "First"
}
}
}这样,当我使用yaml.load时,我可以避免整个级别的数据。
我正在使用: default_flow_style=False参数,但我无法找到避免"-“这是YAML的标准吗?
发布于 2019-02-28 10:41:33
yaml转储正在正确地导出数据结构。您有一个具有一个键和一个值的字典(export_dash_dict)。一个键是dashboards,它的值是一个包含两个元素的列表。这两个元素是字典(我们将不讨论它们的内容,但它们有两个键值对)。
您要导出的数据结构不是一个具有一个键/值对(其中值是一个列表)的字典,而是一个具有两个键值对的字典。第一个键是Dashboard title 1,它的值是一个字典(有两个键-值对,我们在这里不详细介绍)。第二个键是Dashboard title 2,它的值是一个字典(同样,有两个键-值对,我们不会详细说明)。
如果希望yaml.dump编写这样的数据结构,则需要构造该数据结构。
发布于 2019-02-28 10:51:23
感谢torek,这是构建dict的正确方法:
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)https://stackoverflow.com/questions/54923346
复制相似问题