2015-01-13 4 views
0

Я создаю XML DOM с использованием модуля Elementtree python, и кажется, что он использует переменные как узлы. Мой вопрос: как мне создать уникальные имена переменных, чтобы узлы были постоянными для DOM, если я добавляю записи в DOM в цикле. Пример кода ниже.Переменные переменные для использования в Element Tree Python

someList =[1,2,3,4,5] 
root = Element('root') 
records = SubElement(root, 'records') 

for idx, num in enumerate(someList): 
    record+idx = SubElement(records, 'record') 

Надеюсь, это имеет смысл. Любая помощь или совет будет весьма признателен

ответ

1

Правильный ответ на это, чтобы хранить эти предметы в Словаре, а не динамически их назвать, например:

data = dict() 
for idx, num in enumerate(someList): 
    data['record{}'.format(idx)] = SubElement(records, 'record') 

Забегая вперед немного, это будет также сделать это намного проще ссылка эти же объекты позже, чтобы перебирать их и т. д.

+0

Не могли бы вы рассказать о синтаксисе наличия скобок внутри ключа словаря? Я не знаком с их использованием. Спасибо за ваш ответ, кстати. – Jacksgrin

+1

@Jacksgrin Внутри строки фигурные скобки являются точкой вставки для аргумента, переданного в .format(). Итак, 'hello, {}'. Format ('world') даст «привет, мир». Смотрите: https://mkaz.com/2012/10/10/python-string-format/ – dylrei

+0

Могу ли я использовать эту переменную переменные, хранящиеся в словаре, для установки дочерних элементов или текста? Например, могу ли я теперь: "record {} format (idx) .text = record1value" – Jacksgrin