Python ETree元素.查找部分匹配

2024-06-16 10:54:04 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码片段循环遍历几个xml文件,并从每个xml文件中提取字典中的3个“列”。其中一个xmls的第一个字段名为“IndexName”而不是“IndexID”。我如何摆脱一个单一的字段列表,如

field_list = ['Index*', 'CompositeSpread', 'CompositePrice',]

要查找部分匹配:

^{pr2}$

Tags: 文件代码field列表index字典xmllist
1条回答
网友
1楼 · 发布于 2024-06-16 10:54:04

我想出的解决方案是在field_list中同时使用'IndexID'和{}字段,并在列表理解中检查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])

相关问题 更多 >