在python中使用xml.etree解析XML抛出TypeError

内德里戈

我正在编写一段从一堆 XML 文档中提取数据的代码。

代码按预期单独作用于文件;然而,当我遍历文件时,我得到了一个奇怪的错误。

代码如下:

import xml.etree.ElementTree as ET
import os

for root,dirs,files in os.walk(path):
    for file in files:
        if file.endswith(".xml"):
            tree = ET.parse(os.path.join(root,file))
            root = tree.getroot()

当我执行代码时,出现以下错误:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-6-85cdfa81e486> in <module>()
      4     for file in files:
      5         if file.endswith(".xml"):
----> 6             tree = ET.parse(os.path.join(root,file))
      7             root = tree.getroot()

~/.pyenv/versions/3.6.0/lib/python3.6/posixpath.py in join(a, *p)
     76     will be discarded.  An empty last part will result in a path that
     77     ends with a separator."""
---> 78     a = os.fspath(a)
     79     sep = _get_sep(a)
     80     path = a

TypeError: expected str, bytes or os.PathLike object, not xml.etree.ElementTree.Element 

如果我删除最后一行,root = tree.getroot()那么一切都会重新开始工作。我对正在发生的事情一无所知。

瑞奇金

您在代码中为 2 个不同的变量使用相同的名称(根)(用于循环路径,另一个用于获取 xml 的根):

tree = ET.parse(os.path.join(root,file)) #root for your path/folder structure
root = tree.getroot() #root for your xml tree - should use different name

为其中之一使用不同的变量名称。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Python中使用etree解析XML

来自分类Dev

使用 xmldom 或 etree 使用 python 解析 XML

来自分类Dev

使用Python和xml.etree解析XML

来自分类Dev

使用Python xml.etree解析xml文件:空结果

来自分类Dev

使用Python和xml.etree解析XML

来自分类Dev

etree xml解析和删除

来自分类Dev

Windows XML输出的Python ETREE解析

来自分类Dev

XML 解析帮助 Python lxml、etree 或 dom

来自分类Dev

在Python中使用lxml解析XML文件

来自分类Dev

在Python中使用解码进行XML解析

来自分类Dev

在python中使用rest和解析xml

来自分类Dev

在php中使用python脚本解析XML

来自分类Dev

在 Python 中使用 minidom 解析 XML

来自分类Dev

使用lxml.etree在Python中解析XML

来自分类Dev

python(xml.etree.ElementTree)中的XML解析

来自分类Dev

查询:使用xml.etree解析以下xml代码?

来自分类Dev

使用xml.etree.ElementTree XML解析子元素

来自分类Dev

使用xml.etree.ElementTree的Python xml解析不起作用

来自分类Dev

使用xml.etree或Dom API的Python中的XML解析问题

来自分类Dev

Python xml解析etree按位置查找元素X

来自分类Dev

在python 3中使用lxml解析xml

来自分类Dev

如何在python中使用unangle从子进程解析xml

来自分类Dev

无法使用xml.etree.ElementTree解析html

来自分类Dev

在Python中使用ElementTree从XML提取数据

来自分类Dev

Python 3x:使用python xml.etree解析具有名称空间的xml文件

来自分类Dev

使用python etree获取xml的属性

来自分类Dev

使用Etree和Python编辑XML

来自分类Dev

使用xml.etree.ElementTree(python)解析XML时,如何区分常规空格和转义空格(&#32;)

来自分类Dev

使用Python模块xml.etree.ElementTree解析有点复杂的XML并将值存储在List中

Related 相关文章

热门标签

归档