В цикле я пытаюсь собрать несколько подэлементов под конкретным дочерним элементом для каждого IP, прежде чем перейти к следующему.
Я перебираю вывод XML вызова API. В выводе XML есть дочерний элемент, который имеет несколько подэлементов. При записи в CSV цикл захватывает только 1-й подэлемент, прежде чем перейти к следующему ряду.
with open('90daypurgeList' +'_'+ timestamp +'.csv', 'wb') as csvfile:
csv_writer = csv.writer(csvfile)
row = ['hostIP', 'hostID', 'tagID', 'tagName']
csv_writer.writerow(row)
for host in root.iter('HOST'):
hostIP = host.find('IP').text
hostID = host.find('ID').text
tagID = host.find('TAGS').find('TAG').find('TAG_ID').text
tagName = host.find('TAGS').find('TAG').find('NAME').text
row = [hostIP, hostID, tagID, tagName]
csv_writer.writerow(row)
Вывод XML:
<HOST>
<ID>720398</ID>
<IP>192.168.25.19</IP>
<TAGS>
<TAG>
<TAG_ID><![CDATA[78651]]></TAG_ID>
<NAME><![CDATA[Corporate]]></NAME>
</TAG>
<TAG>
<TAG_ID><![CDATA[86241]]></TAG_ID>
<NAME><![CDATA[GRP-End-User Subnets]]></NAME>
</TAG>
<TAG>
<TAG_ID><![CDATA[0468]]></TAG_ID>
<NAME><![CDATA[Windows 10]]></NAME>
</TAG>
</TAGS>
</HOST>
Я ожидал получить все подэлементы дочернего элемента, но только получить начальный подэлемент перед переходом на следующий уникальный идентификатор. Может кто-нибудь, пожалуйста, покажите мне, что мне не хватает?