Je suis nouveau sur Python alors s'il vous plaît, gardez-moi. J'essaie de comprendre comment faire défiler un ensemble de valeurs dans un fichier YAML. Le fichier est analysé en utilisant PyYAML et doit ensuite être introduit dans la boucle. Voici quelques YAML par exemple:Python conditionnel pour une boucle basée sur les données YAML
dohicky.yml
---
#Example file
dohicky:
"1":
Stuff:
- Data
- Data
Morestuff:
- Data
- Data
"2":
Stuff:
- Data
- Data
Morestuff:
- Data
- Data
"n":
- Etc
D'abord, je tire le contenu du YAML sur.
import yaml
f = open('dohicky.yml')
dohicky = yaml.safe_load(f)
f.close()
Maintenant, j'ai juste besoin soit une boucle ou une boucle while pour parcourir chaque numéro « id » sous « dohicky ».
for x in xrange(1, 2):
Donc, évidemment, cela fonctionnerait, mais est défini de manière statique pour seulement 2 éléments. Je ne sais pas comment, par exemple:
"do while" id = dohicky["dohicky"]["x"] is true. #Not code, just concept!
L'autre problème que je suis tout de suite en cours d'exécution est de savoir comment puis créer un objet dans cette boucle. Par exemple:
id(x) = dohicky(Pass other info from YAML to class) #Not code, just concept!
Malheureusement, je ne suis pas assez familier avec Python encore (withPyYAML) pour comprendre la syntaxe. Toute aide est très appréciée!
* UPDATE * C'est un peu le code sudo, mais vous devriez comprendre ce que j'essaie de faire au moins.
import yaml
f = open('dohicky.yml')
dohicky = yaml.safe_load(f)
f.close()
for x in dohicky["dohicky"]["x"]
test = dohicky["dohicky"]["1"]["Stuff"]
print test
Dans ce test, je suis juste l'impression de la sortie de « Stuff », mais en réalité, je dois créer un objet en utilisant ces données.
Avez-vous essayé 'for x in dohicky: '? – Will