2012-09-18 21 views
56

Python kullanarak yaml dosyasına aşağıdaki verileri yazmak gerekir: Bir sözlükteYAML formatında bir dosyaya nasıl veri yazabilirim?

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

yani sözlüğü. Bunu nasıl başarabilirim? default_flow_style için farkı gösteren PyYAML belgelerine

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

Ayrıca bkz: [Python içinde bir YAML dosyası ayrıştırma nasıl] (http: blok modunda dosya (genellikle daha okunabilir) bunu yazmak için // stackoverflow.com/q/1773805/562769) –

cevap

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 parametre aksi iç içe koleksiyonları için bu blok stilini oluşturan, siz (akış tarzı) istediğiniz biçimi üretmek için gerekli olan parametre.

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) 

üretir:

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

default_flow_style = Doğru cevap, aşağıdaki cevapta belirtilenin tersi! – encc

+2

@encc yep, sabit – mobeets

İlgili konular