ниже фрагмент кода проходит через несколько XML файлов и вытягивает 3 "столбца" в словаре из каждого. Одно из xmls имеет первое поле с немного отличающимся "IndexName", а не "IndexID". как это сделать, я уйду с одним списком полей, например
field_list = ['Index*', 'CompositeSpread', 'CompositePrice',]
найти частичное совпадение:
strXpath = "./row"
field_list = ['IndexID', 'CompositeSpread', 'CompositePrice',]
field_list1 = ['IndexName', 'CompositeSpread', 'CompositePrice',]
tree = ET.parse(file_path)
root = tree.getroot()
value_list = []
for el in root.findall(strXpath):
value_list.append([el.find(x).text for x in field_list])
в решении, которое я придумал, использовалось как 'IndexID'
и 'IndexName'
в field_list
и проверка того, if el.find(x) is not None
в понимании списка:
import xml.etree.ElementTree as ET
strXpath = "./row"
field_list = ['IndexName', 'IndexID', 'CompositeSpread', 'CompositePrice',]
tree = ET.parse(file_path)
root = tree.getroot()
value_list = []
for el in root.findall(strXpath):
value_list.append([el.find(x).text for x in field_list if el.find(x) is not None])