全面建设YAML词典项目的数组?

问题描述 投票:27回答:2

基本上试图在YAML东西,可以使用此JSON来完成:

{
models:
 [
  { 
    model: "a"
    type: "x"
    #bunch of properties...
  },
  {
    model: "b"
    type: "y"
    #bunch of properties...
  }
 ]
}

到目前为止,这是我,这是行不通的,因为我是在重复我的model关键,但什么都可以做到这一点通过保持model关键字有道?

models:
 model:
  type: "x"
  #bunch of properties...
 model:
  type: "y"
  #bunch of properties...
yaml pyyaml
2个回答
79
投票

使用破折号开始一个新的列表元素:

models:
 - model: "a"
   type: "x"
   #bunch of properties...
 - model: "b"
   type: "y"
   #bunch of properties...

34
投票

你可能一直在寻找YAML太久,因为你叫JSON在您的文章究竟是不是,它更是一个YAML和JSON的一半和一半。让我们跳过事实,JSON不允许开始用#意见,你应该引用那些键,你应该把,在映射元素之间的字符串:

{
"models":
 [
  {
    "model": "a",
    "type": "x"
  },
  {
    "model": "b",
    "type": "y"
  }
 ]
}

这是正确的JSON,以及它是YAML,因为YAML是JSON的超集。你可以如检查在这个YAML parser,网上。

你可以把它转换成你似乎使用ruamel.yaml.cmd喜欢为YAML块式(基于我的增强PyYAML的版本:pip install ruamel.yaml.cmd)。您可以使用它的命令行工具来转换JSON阻止YAML(版本0.9.1,你也可以强制流量风格):

yaml json in.json

它可以帮助您:

models:
- model: a
  type: x
- model: b
  type: y

有一些在线资源,让您做到以上,但与任何此类服务,不要将它们用于任何重要的(如信用卡号码和密码的列表)。

© www.soinside.com 2019 - 2024. All rights reserved.