Python3:无法使用xmltodi将XML转换为dict

2024-03-28 12:40:43 发布

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

我试图将数据从XML文件转换为PythonDict,但无法做到。下面是我正在编写的代码。在

import xmltodict
input_xml  = 'data.xml'  # This is the source file

with open(input_xml, encoding='utf-8', errors='ignore') as _file:
    data = _file.read()
    data = xmltodict.parse(data,'ASCII')
    print(data)
    exit()

在执行此代码时,以下是我得到的错误:
xml.parsers.expat.ExpatError: not well-formed (invalid token): line 239, column 40.
在多次点击和试用之后,我发现我的xml在一个特定的标记中有一些印地语字符,如下所示

^{pr2}$

如何在运行xmltodict.parse之前忽略这些未编码字符?在


Tags: 文件数据代码importinputdataparseis
1条回答
网友
1楼 · 发布于 2024-03-28 12:40:43

我猜这个问题与你正在阅读的文件的编码有关。 你为什么要用ASCII来解析它??在

如果您尝试从python字符串中读取同一个XML而不使用ASCII,它应该可以正常工作:

import xmltodict
xml = """<DECL>!! आप की सेवा में पुनः पधारे !!</DECL>"""
xmltodict.parse(xml, process_namespaces=True)

结果:

^{pr2}$

使用一个包含单个输入行的文件,我可以正确地分析它:

import xmltodict
input_xml  = 'tmp.txt'  # This is the source file

with open(input_xml, encoding='utf-8', mode='r') as _file:
    data = _file.read()
    data = xmltodict.parse(data)
    print(data)

问题很可能是您试图将其解析为“ASCII”。在

相关问题 更多 >