如何在YAML中创建嵌套列表?我想得到:
{"Hello": ["as", ["http://", ["cat"]]]}
Run Code Online (Sandbox Code Playgroud)
这是我的YAML不起作用(使用pyYaml):
Hello:
- "as"
- "http://"
- cat
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
*********更新:***********
具体来说,我正在尝试从YAML生成以下JSON:
"URL" : {
"Description" : "URL of the website",
"Value" : { "Fn::Join" : [ "", [ "http://", { "Fn::GetAtt" : [ "ElasticLoadBalancer", "DNSName" ]}]]}
}
Run Code Online (Sandbox Code Playgroud)
这是我工作的最接近的YAML,但它并不能满足我的需求.
YAML是:
Outputs:
URL:
Description: URL of the website
Value:
"Fn::Join":
- ""
- "http://"
- "Fn::GetAtt":
- ElasticLoadBalancer
- DNSName
Run Code Online (Sandbox Code Playgroud)
这导致:
"URL": {
"Description": "URL of the website",
"Value": {
"Fn::Join": [
"",
"http://",
{
"Fn::GetAtt": [
"ElasticLoadBalancer",
"DNSName"
]
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
这几乎是正确的,但在""之后应该有一个嵌套列表,而不仅仅是另一个列表项.我怎样才能解决这个问题?
(PS这将被输入API,因此输出必须完全匹配)
use*_*250 21
答案是:
URL:
Description: URL of the website
Value:
"Fn::Join":
- ""
- - "http://"
- "Fn::GetAtt":
- ElasticLoadBalancer
- DNSName
Run Code Online (Sandbox Code Playgroud)
(参见http://pyyaml.org/wiki/PyYAMLDocumentation#YAMLsyntax - "块序列可以嵌套")
从新行开始嵌套列表。使用这种方法很容易弄清楚。
像这样尝试:
YAML
Value:
"Fn::Join":
- ""
-
- "http://"
- "Fn::GetAtt":
- ElasticLoadBalancer
- DNSName
Run Code Online (Sandbox Code Playgroud)
等效的 JSON:
{
"URL": {
"Description": "URL of the website",
"Value": {
"Fn::Join": [
"",
[
"http://",
{
"Fn::GetAtt": [
"ElasticLoadBalancer",
"DNSName"
]
}
]
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
尝试:
Hello:
["as",
["http://",
[cat]
]
]
Run Code Online (Sandbox Code Playgroud)
json输出:
{
"Hello": [
"as",
[
"http://",
[
"cat"
]
]
]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42539 次 |
| 最近记录: |