2013-05-02 26 views
14

Come posso creare elenchi annidati in YAML? Voglio ottenere:Elenchi annidati in yaml

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

Ecco il mio YAML che non funziona (con pyYaml):

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

Che cosa sto facendo di sbagliato?

** * ** * ** * Aggiornamento: * *** *** ****

In particolare mi Sto cercando di generare il seguente JSON da YAML:

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

Ecco la YAML più vicina a cui lavoro, ma non mi dà proprio quello di cui ho bisogno.

YAML è:

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

Questo si traduce in:

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

Questo è quasi corretta, ma dopo "ci dovrebbe essere una lista annidata, non solo un altro elemento della lista". Come posso risolvere questo?

(PS Questo sta per essere inseriti in un'API così l'uscita deve corrispondere completamente)

risposta

3

Prova:

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

JSON uscita:

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

Ciao, sfortunatamente questo è inserito tra parentesi graffe - Non posso avere parentesi graffe. L'output deve essere specificamente quello che ho nella mia domanda. – user1491250

+0

Risolto, vedere la versione modificata :) – Yohann

+0

Non posso farlo. Questa è una struttura complessa profondamente annidata :-( – user1491250