2012-09-18 10 views
8

मैं yaml के लिए नया हूं, आउटपुट अपेक्षाकृत प्रारूप में है लेकिन सोच रहा है कि यम में नीचे घोंसला वाली वस्तुओं का निर्माण करने का बेहतर तरीका है या नहीं।यामल मल्टी नेस्टेड और पायथन शब्दकोश

import yaml 
yaml.load (""" 
test1: 
    a: 
     a1: 
     a2: 
      a3: 0 
      b3: 0 
      c3: 0 
     b2:   
      a3: 0 
      b3: 0 
      c3: 0 
     c2: 
      a3: 0 
      b3: 0 
      c3: 0 
     b1: 
     a2: 
      a3: 0 
      b3: 0 
      c3: 0 
     b2:   
      a3: 0 
      b3: 0 
      c3: 0 
     c2: 
      a3: 0 
      b3: 0 
      c3: 0 
     c1: 
     a2: 
      a3: 0 
      b3: 0 
      c3: 0 
     b2:   
      a3: 0 
      b3: 0 
      c3: 0 
     c2: 
      a3: 0 
      b3: 0 
      c3: 0 
    b: 
     a1: 
     a2: 
      a3: 0 
      b3: 0 
      c3: 0 
     b2:   
      a3: 0 
      b3: 0 
      c3: 0 
     c2: 
      a3: 0 
      b3: 0 
      c3: 0 
     b1: 
     a2: 
      a3: 0 
      b3: 0 
      c3: 0 
     b2:   
      a3: 0 
      b3: 0 
      c3: 0 
     c2: 
      a3: 0 
      b3: 0 
      c3: 0 
     c1: 
     a2: 
      a3: 0 
      b3: 0 
      c3: 0 
     b2:   
      a3: 0 
      b3: 0 
      c3: 0 
     c2: 
      a3: 0 
      b3: 0 
      c3: 0 
    c: 
     a1: 
     a2: 
      a3: 0 
      b3: 0 
      c3: 0 
     b2:   
      a3: 0 
      b3: 0 
      c3: 0 
     c2: 
      a3: 0 
      b3: 0 
      c3: 0 
     b1: 
     a2: 
      a3: 0 
      b3: 0 
      c3: 0 
     b2:   
      a3: 0 
      b3: 0 
      c3: 0 
     c2: 
      a3: 0 
      b3: 0 
      c3: 0 
     c1: 
     a2: 
      a3: 0 
      b3: 0 
      c3: 0 
     b2:   
      a3: 0 
      b3: 0 
      c3: 0 
     c2: 
      a3: 0 
      b3: 0 
      c3: 0 

""") 

उत्पादन:

'test1': {'a': {'a1': {'c2': {'c3': 0, 'a3': 0, 'b3': 0}, 'a2': {'c3': 0, 'a3': 0, 'b3': 0}, 'b2': {'c3': 0, 'a3': 0, 'b3': 0}}, 'c1': {'c2': {'c3': 0, 'a3': 0, 'b3': 0}, 'a2': {'c3': 0, 'a3': 0, 'b3': 0}, 'b2': {'c3': 0, 'a3': 0, 'b3': 0}}, 'b1': {'c2': {'c3': 0, 'a3': 0, 'b3': 0}, 'a2': {'c3': 0, 'a3': 0, 'b3': 0}, 'b2': {'c3': 0, 'a3': 0, 'b3': 0}}}, 'c': {'a1': {'c2': {'c3': 0, 'a3': 0, 'b3': 0}, 'a2': {'c3': 0, 'a3': 0, 'b3': 0}, 'b2': {'c3': 0, 'a3': 0, 'b3': 0}}, 'c1': {'c2': {'c3': 0, 'a3': 0, 'b3': 0}, 'a2': {'c3': 0, 'a3': 0, 'b3': 0}, 'b2': {'c3': 0, 'a3': 0, 'b3': 0}}, 'b1': {'c2': {'c3': 0, 'a3': 0, 'b3': 0}, 'a2': {'c3': 0, 'a3': 0, 'b3': 0}, 'b2': {'c3': 0, 'a3': 0, 'b3': 0}}}, 'b': {'a1': {'c2': {'c3': 0, 'a3': 0, 'b3': 0}, 'a2': {'c3': 0, 'a3': 0, 'b3': 0}, 'b2': {'c3': 0, 'a3': 0, 'b3': 0}}, 'c1': {'c2': {'c3': 0, 'a3': 0, 'b3': 0}, 'a2': {'c3': 0, 'a3': 0, 'b3': 0}, 'b2': {'c3': 0, 'a3': 0, 'b3': 0}}, 'b1': {'c2': {'c3': 0, 'a3': 0, 'b3': 0}, 'a2': {'c3': 0, 'a3': 0, 'b3': 0}, 'b2': {'c3': 0, 'a3': 0, 'b3': 0}}}}} 

उत्तर

14

मैं आपको इन दो तरीकों YAML मोर्चे पर कुछ टाइपिंग की बचत होगी के बारे में सोच सकते हैं।

कम मानचित्रण वाक्य रचना का उपयोग करें:

test1: 
    a: 
     a1: 
     a2: {a3: 0, b3: 0, c3: 0} 
     b2: {a3: 0, b3: 0, c3: 0} 
     c2: {a3: 0, b3: 0, c3: 0} 
     b1: 
     a2: {a3: 0, b3: 0, c3: 0} 
     b2: {a3: 0, b3: 0, c3: 0} 
     c2: {a3: 0, b3: 0, c3: 0} 
     c1: 
     a2: {a3: 0, b3: 0} 

उपयोग उपनाम:

entry: &aliasentry 
    a2: {a3: 0, b3: 0, c3: 0} 
    b2: {a3: 0, b3: 0, c3: 0} 
    c2: {a3: 0, b3: 0, c3: 0} 

test1: 
    a: 
     a1: *aliasentry 
     b1: *aliasentry 
     c1: {a2: {a3: 0, b3: 0}} 
संबंधित मुद्दे