Seite 1 von 1
python und yaml
Verfasst: Samstag 5. Dezember 2009, 00:37
von newc0mer
hallo!
ich habe ein frage zu yaml. ich habe ein file: beispiel.yml.
darin steht:
mit yaml.load(open('beispiel.yml') (von PyYAML) kann ich alles rauslesen. aber wie kann ich nur auf sub zugreifen? muss ich da bei load ein parameter mitgeben, welcher auf "sub" verweisst?
ich finde keine guten beispiele bei google. evt weil ich nicht genau was, nach was ich suchen sollte...
gruss
Verfasst: Samstag 5. Dezember 2009, 00:46
von Hyperion
So wie ich das gesehen habe baut PyYAML doch ähnlich wie JSON Parser auch eine Struktur auf Dictionyries und Listen basierend auf. Insofern brauchst Du doch nur auf den richtigen Schlüssel zuzugreifen:
Code: Alles auswählen
data = yaml.load(open('beispiel.yml')
print data["main"]["sub"]
sollte Dir die Elemente entry1 und entry2 als Liste zurückliefern. (ungetestet

)
Verfasst: Samstag 5. Dezember 2009, 00:53
von Hyperion
So, nun auch getestet:
Code: Alles auswählen
In [1]: import yaml
In [2]: data = u"""
...: main:
...: sub:
...: - entry1
...: - entry2
...: """
In [3]: result = yaml.load(data)
In [4]: result
Out[4]: {'main': {'sub': ['entry1', 'entry2']}}
In [5]: result["main"]
Out[5]: {'sub': ['entry1', 'entry2']}
In [6]: result["main"]["sub"]
Out[6]: ['entry1', 'entry2']
Verfasst: Samstag 5. Dezember 2009, 01:03
von newc0mer
hm alles klar. geht bei mir auch. es ist in diesem fall ein array, korrekt? ich wollte mit result('sub') darauf zugreifen...
Verfasst: Samstag 5. Dezember 2009, 01:05
von DasIch
{} ist ein dict und [] eine Liste.
Verfasst: Samstag 5. Dezember 2009, 01:09
von newc0mer
vielen dank!