在YAML中构建一个字典项数组?

时间:2015-05-13 17:16:06

标签: yaml pyyaml

基本上尝试使用这个json可以完成的yaml:

{
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...

2 个答案:

答案 0 :(得分:71)

使用短划线开始新的列表元素:

$('span[format="float"]').number(true, 2);

答案 1 :(得分:30)

你可能已经看了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

有一些在线资源允许您执行上述操作,但与任何此类服务一样,请勿将其用于任何重要事项(例如信用卡号和密码列表)。