2012-09-18 11 views
56

मैं अजगर का उपयोग कर YAML फ़ाइल के लिए नीचे डेटा लिखने के लिए की जरूरत है:मैं फ़ाइल में वाईएएमएल प्रारूप में डेटा कैसे लिख सकता हूं?

{A:a, B:{C:c, D:d, E:e}} 

यानी, किसी शब्दकोश में शब्दकोश। इसे कैसे प्राप्त किया जा सकता है?

+0

भी देखें: [मैं अजगर में एक YAML फ़ाइल पार्स कर सकते हैं कैसे] (http: ब्लॉक मोड में एक फ़ाइल (अक्सर अधिक पठनीय) करने के लिए इसे लिखने के लिए // stackoverflow.com/q/1773805/562769) –

उत्तर

87
import yaml 

data = dict(
    A = 'a', 
    B = dict(
     C = 'c', 
     D = 'd', 
     E = 'e', 
    ) 
) 

with open('data.yml', 'w') as outfile: 
    yaml.dump(data, outfile, default_flow_style=False) 

default_flow_style=False पैरामीटर, प्रारूप आप चाहते हैं (प्रवाह शैली) का निर्माण करने के लिए आवश्यक है अन्यथा नेस्टेड संग्रह के लिए यह ब्लॉक शैली का उत्पादन: default_flow_style के लिए अंतर दिखा PyYAML प्रलेखन के लिए

A: a 
B: {C: c, D: d, E: e} 
+10

default_flow_style = सही नीचे दिए गए उत्तर में बताए गए विपरीत है! – encc

+2

@encc yep, निश्चित – mobeets

41

Link पैरामीटर।

d = {'A':'a', 'B':{'C':'c', 'D':'d', 'E':'e'}} 
with open('result.yml', 'w') as yaml_file: 
    yaml.dump(d, yaml_file, default_flow_style=False) 

पैदा करता है:

A: a 
B: 
    C: c 
    D: d 
    E: e 
संबंधित मुद्दे