抱歉,我觉得这可能是一个彻头彻尾的noob问题,但是我尝试过的东西似乎并没有起作用。
我有一个XML文件,其中包含以下几个部分:
<ns:ServiceTechnicianParty>
<ns:SpecifiedPerson>
<ns:ID>TECH005</ns:ID>
<ns:GivenName>Technician 005</ns:GivenName>
<ns:FamilyName>Technician 005</ns:FamilyName>
</ns:SpecifiedPerson>
</ns:ServiceTechnicianParty>
我的阅读内容如下:
for specified_person in soup.find_all('ns:servicetechnicianparty'):
person = {child.name: child.text for child in specified_person.findChildren()}
print person
返回以下内容:
{'ns:givenname': u'Technician 001', 'ns:specifiedperson': u'\nTECH001\nTechnician 001\nTechnician 001\n', 'ns:familyname': u'Technician 001', 'ns:id': u'TECH001'}
{'ns:givenname': u'Technician 005', 'ns:specifiedperson': u'\nTECH005\nTechnician 005\nTechnician 005\n', 'ns:familyname': u'Technician 005', 'ns:id': u'TECH005'}
所以我想知道的是,当我尝试比较XML中的内容与程序中显示的内容时,如何一次获得1 dict
?
答案 0 :(得分:1)
所以它返回了一系列的词汇?如果是这种情况,您应该只能通过指定一个访问一个。尝试print person[0]
只是为了检查它在这里做了什么。
答案 1 :(得分:0)
我修改了我的代码,以便我得到一个字典列表,而不是单独的两个字典。非常感谢本杰明用这个引起我的注意。
peoples = []
for specified_person in soup.find_all('ns:servicetechnicianparty'):
person = {child.name: child.text for child in specified_person.findChildren()}
for people in person:
peoples.append(person)
print peoples[0]
再次感谢Benjamin Drury启发这个想法。