访问列表中的python变量

访问列表中的python变量,python,class,django-views,Python,Class,Django Views,在下面的代码中,如何检索id的值,id中有多个值。如何访问id的值并将其更新为result1 def parse_results (): try: xml = minidom.parseString(new_results) for xmlchild in xmldoc.childNodes[0].childNodes : result1 = {} result1.update ({'firstname':

在下面的代码中,如何检索id的值,id中有多个值。如何访问id的值并将其更新为result1

def parse_results ():

     try:
        xml = minidom.parseString(new_results)
        for xmlchild in xmldoc.childNodes[0].childNodes :
           result1 = {}
           result1.update ({'firstname': xmlchild.getElementsByTagName("firstname")[0].childNodes[0].nodeValue})
           result1.update ({'lastname': xmlchild.getElementsByTagName("lastname")[0].childNodes[0].nodeValue})
           result1.update ({'address': address})
           if xmlchild.getElementsByTagName("id")[0].childNodes[0].nodeValue:     
              logging.debug(xmlchild.getElementsByTagName("id")[0].childNodes[0].nodeValue.lower())        

           result1.update ({'id': id})
编辑:

xmlchild.getElementsByTagName(“id”)[0]。childNodes[0]。nodeValue
-此语句给出一个异常

添加XML:

 <info><firstname>firstname</firstname><lastname>lastname</lastname><id>2</id></info>
 <info><firstname>firstname</firstname><lastname>lastname</lastname><id>3</id></info>
 <info><firstname>firstname</firstname><lastname>lastname</lastname><id>4</id></info>
firstnamelastname2
姓氏姓氏3
firstnamelastname4

为什么要使用minidom?使用起来真的很无聊

我建议你搬到:


你也可以发布部分xml吗?当我刚刚检查了3行xml时,在你得到异常的那一行没有问题,奇怪元素树不是默认安装的一部分,是吗?这可能就是原因。OP需要安装lxml()。除此之外,我完全同意。更容易使用。@Tom:幸运的是,这是默认安装的一部分,因为python 2.5:-我已经在我的答案中添加了链接。@Tom:安装lxml仍然值得,因为它提供了额外的xpath支持,这真的很好。奇怪。也许是我们这些可怜的Windows用户——我有Python2.5,当我想使用xpath支持时,我必须安装这个库。不管怎样,我很高兴知道它现在是默认的一部分。@Tom:xpath只支持lxml,但我不使用它。我答案中的代码仅使用
.findall()
import xml.etree.ElementTree as et
d = et.fromstring('''
<doc>
 <info><firstname>firstname</firstname><lastname>lastname</lastname><id>2</id></info>
 <info><firstname>firstname</firstname><lastname>lastname</lastname><id>3</id></info>
 <info><firstname>firstname</firstname><lastname>lastname</lastname><id>4</id></info>
</doc>
''')

result = [dict((el.tag, el.text) for el in info) for info in d.findall('info')]
print result
[{'firstname': 'firstname', 'id': '2', 'lastname': 'lastname'},
 {'firstname': 'firstname', 'id': '3', 'lastname': 'lastname'},
 {'firstname': 'firstname', 'id': '4', 'lastname': 'lastname'}]