Ответ 1
Используйте тире, чтобы запустить новый элемент списка:
models:
- model: "a"
type: "x"
#bunch of properties...
- model: "b"
type: "y"
#bunch of properties...
В основном пытается что-то сделать в 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...
Используйте тире, чтобы запустить новый элемент списка:
models:
- model: "a"
type: "x"
#bunch of properties...
- model: "b"
type: "y"
#bunch of properties...
Вероятно, вы слишком долго рассматривали YAML, потому что то, что вы называете JSON в своем посте, не таково, это больше половины YAML и JSON. Позволяет пропустить тот факт, что JSON не позволяет комментарии, начинающиеся с #
, вы должны процитировать строки, которые являются ключами, и вы должны положить ,
между элементами в отображении:
{
"models":
[
{
"model": "a",
"type": "x"
},
{
"model": "b",
"type": "y"
}
]
}
Это правильный JSON, а также YAML, потому что YAML - это расширенный набор JSON. Например, вы можете проверить это онлайн на этом YAML-парсере.
Вы можете преобразовать его в блочный стиль, который вы предпочитаете как YAML, используя ruamel.yaml.cmd (на основе моей расширенной версии PyYAML: pip install ruamel.yaml.cmd
). Вы можете использовать утилиту командной строки для преобразования JSON в блок YAML (в версии 0.9.1 вы также можете принудительно использовать стиль потока):
yaml json in.json
который получает вас:
models:
- model: a
type: x
- model: b
type: y
Существуют некоторые онлайн-ресурсы, которые позволяют вам делать вышеперечисленное, но, как и в случае с любыми такими услугами, не используйте их для чего-либо важного (например, для списка номеров кредитных карт и паролей).