2015-08-05 1 views
1

Я новичок в Python, поэтому, пожалуйста, несите меня. Я пытаюсь выяснить, как цикл через набор значений в файле YAML. Файл анализируется с использованием PyYAML, а затем его необходимо вводить в цикл. Вот некоторые YAML, например:Условный Python для цикла на основе данных YAML

dohicky.yml

--- 
#Example file 
dohicky: 
    "1": 
    Stuff: 
     - Data 
     - Data 
    Morestuff: 
     - Data 
     - Data 
    "2": 
    Stuff: 
     - Data 
     - Data 
    Morestuff: 
     - Data 
     - Data 
    "n": 
    - Etc 

Во-первых, я потянув содержимое YAML из.

import yaml 
f = open('dohicky.yml') 
dohicky = yaml.safe_load(f) 
f.close() 

Теперь мне просто нужно либо цикл или время цикла перебора каждого пронумерованный «ID» под «dohicky».

for x in xrange(1, 2): 

Очевидно, что это сработает, но статически определено только для двух элементов. Не знаю, как, например:

"do while" id = dohicky["dohicky"]["x"] is true. #Not code, just concept! 

Другая проблема, с которой я немедленно сталкиваюсь, заключается в том, как создать объект внутри этого цикла. Например:

id(x) = dohicky(Pass other info from YAML to class) #Not code, just concept! 

К сожалению, я не достаточно хорошо знаком с Python еще (withPyYAML), чтобы понять синтаксис. Любая помощь высоко ценится!

* ОБНОВЛЕНИЕ * Это своего рода код sudo, но вы должны понимать, что я пытаюсь сделать как минимум.

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 

В этом тесте я просто напечатав выход «штучек», но на самом деле, мне нужно создать объект, используя эти данные.

+3

вы пробовали 'for x in dohicky: '? – Will

ответ

2

Вы можете использовать следующий код для итерации по каждому пронумерованному «идентификатору» под «dohicky»:

for dohicky_id in dohicky['dohicky']: 
    stuff = dohicky['dohicky'][dohicky_id]['Stuff'] 

В этом случае материал представляет собой список dicts данных. Если вы не можете по каким-либо причинам работать со словарем и хотите преобразовать данные dicts в объекты, вы можете сделать это, посмотрев следующий вопрос: Convert Python dict to object?

+0

Отлично, отлично благодарю вас! Теперь мне просто нужно прочитать, как попасть в объекты. – Atomiklan

 Смежные вопросы

  • Нет связанных вопросов^_^