2012-09-18 111 views
56

我需要使用Python寫入以下數據到YAML文件:如何在YAML格式的文件中寫入數據?

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

即,在字典中的字典。我怎樣才能做到這一點?

+0

參見:[如何可以解析YAML文件在Python](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參數是必要的,以產生要(流式)的格式,否則爲嵌套集合它產生塊樣式:

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

default_flow_style = True與下面的答案中所述的相反! – encc

+2

@encc yep,固定 – mobeets

41

Link到示出用於default_flow_style的差PyYAML文檔參數。 將其寫入到在塊模式中的文件(通常更易讀):

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