Pandas read_xml报错:xpath未返回节点,求解决方法
问题分析与解决
错误原因
你的XML中,<Application>和<loanappBatch>节点并未使用pa命名空间前缀——根节点只是声明了pa前缀对应的命名空间,但实际这两个节点属于无命名空间的节点。而你在XPath中错误地给它们加上了pa:前缀,导致Pandas找不到匹配的节点,从而抛出ValueError。
修正代码
直接去掉XPath中的pa:前缀,并移除不必要的namespaces参数(因为当前节点不需要命名空间):
import pandas as pd sample_xml = '<Application Type="NewApplication" xmlns:pa="urn:Applyonline-Product-Attributes"><loanappBatch>some_data_here</loanappBatch></Application>' df = pd.read_xml( sample_xml, xpath='.//Application/loanappBatch' ) print(df)
运行后会输出预期的DataFrame:
loanappBatch 0 some_data_here
扩展说明
如果你的实际XML中,节点确实属于pa命名空间(例如节点是<pa:loanappBatch>),则需要同时调整XML结构和XPath:
# 示例XML(节点使用pa前缀) sample_xml = '<pa:Application Type="NewApplication" xmlns:pa="urn:Applyonline-Product-Attributes"><pa:loanappBatch>some_data_here</pa:loanappBatch></pa:Application>' df = pd.read_xml( sample_xml, xpath='.//pa:Application/pa:loanappBatch', namespaces={'pa': 'urn:Applyonline-Product-Attributes'} )
内容的提问来源于stack exchange,提问作者Ver
相关产品推荐
相关产品推荐

