[英]Python 3: Unable to convert XML to dict using xmltodict
我正在嘗試將數據從XML文件轉換為python dict,但無法這樣做。 以下是我正在編寫的代碼。
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在特定標記內有一些印地語字符,如下所示
<DECL>!! आप की सेवा में पुनः पधारे !!</DECL>
如何在運行xmltodict.parse
之前忽略這些未編碼的字符?
我想這個問題與您正在讀取的文件的編碼有關。 為什么要嘗試使用“ ASCII”來解析它?
如果您嘗試從沒有ASCII的python字符串中讀取相同的XML,則應該可以正常工作:
import xmltodict
xml = """<DECL>!! आप की सेवा में पुनः पधारे !!</DECL>"""
xmltodict.parse(xml, process_namespaces=True)
結果是:
OrderedDict([('DECL', '!! आप की सेवा में पुनः पधारे !!')])
使用具有該單個輸入行的文件,我可以使用以下命令正確解析該文件:
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”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.