Вложенные списки в yaml - программирование
Подтвердить что ты не робот

Вложенные списки в yaml

Как создать вложенные списки в YAML? Я хочу получить:

 {"Hello": ["as", ["http://", ["cat"]]]}

Здесь мой YAML, который не работает (с pyYaml):

  Hello:
    - "as"
      - "http://"
        - cat

Что я делаю неправильно?

********* Обновление: ***********

В частности, я пытаюсь создать следующий JSON из YAML:

"URL" : {
  "Description" : "URL of the website",
  "Value" :  { "Fn::Join" : [ "", [ "http://", { "Fn::GetAtt" : [ "ElasticLoadBalancer", "DNSName" ]}]]}
}

Здесь ближайший YAML у меня работает, но он не дает мне то, что мне нужно.

YAML:

  Outputs:
    URL:
      Description: URL of the website
      Value:
        "Fn::Join":
        - ""
        - "http://"
        - "Fn::GetAtt":
          - ElasticLoadBalancer
          - DNSName

Это приводит к:

    "URL": {
        "Description": "URL of the website", 
        "Value": {
            "Fn::Join": [
                "", 
                "http://", 
                {
                    "Fn::GetAtt": [
                        "ElasticLoadBalancer", 
                        "DNSName"
                    ]
                }
            ]
        }
    }

Это почти правильно, но после "" должен быть вложенный список, а не только другой элемент списка. Как я могу это исправить?

(PS Это будет передаваться в API, поэтому вывод должен полностью совпадать)

4b9b3361

Ответ 1

И ответ:

URL:
  Description: URL of the website
  Value:
    "Fn::Join":
      - ""
      - - "http://"
        - "Fn::GetAtt":
            - ElasticLoadBalancer
            - DNSName

(см. http://pyyaml.org/wiki/PyYAMLDocumentation#YAMLsyntax - "последовательности блоков могут быть вложенными" )

Ответ 2

Try:

Hello: 
  ["as", 
    ["http://", 
      [cat]
    ]
]

Выход Json:

{
  "Hello": [
    "as", 
    [
      "http://", 
      [
        "cat"
      ]
    ]
  ]
}