开发者

Accessing python variables in a list

In the following code below, how to retrieve the value of id,Id has multiple values in it.How to access the values of id and update it to 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})

Edit:

xmlchild.getElementsByTagName("id")[0].childNodes[0].nodeValue -this statement gives an exception

Adding 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>


Why are you using minidom? It is really boring to use.

I suggest you move to element tree:

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

That prints:

[{'firstname': 'firstname', 'id': '2', 'lastname': 'lastname'},
 {'firstname': 'firstname', 'id': '3', 'lastname': 'lastname'},
 {'firstname': 'firstname', 'id': '4', 'lastname': 'lastname'}]
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜