gpt4 book ai didi

python lxml.etree._Element 到 JSON 或 dict

转载 作者:行者123 更新时间:2023-11-28 17:18:18 24 4
gpt4 key购买 nike

从库的一种方法我得到 lxml.etree._Element,是否有任何库或函数可以将 lxml.etree._Element 转换为 JSON 或字典?

例如:

<detail>
<ouaf:Fault xmlns:ouaf="urn:oracle:ouaf">
<ResponseStatus>F</ResponseStatus>
<ResponseCode>2013</ResponseCode>
<ResponseData numParm="1" text="The personal account was not found: 9134211141" category="90006" number="32200" parm1="9134211141" />
</ouaf:Fault>
</detail>

应该是这样的:

{
'detail': {
'Fault': {
'ResponseStatus': 'F'
'ResponseCode': '2013'
'ResponseData': {
'numParm': '1'
'text': 'The personal account was not found: 9134211141'
'category': '90006'
'number': '32200'
'parm1': '9134211141'
}
}
}
}

更新 1:

当我尝试使用这个 function

def conver_element(self, element):
foo = self.recursive_dict(element)
return foo

def recursive_dict(self, element):
return element.tag, \
dict(map(self.recursive_dict, element)) or element.text

我得到 foo:

<class 'tuple'>: ('detail', {'ResponseCode': '2013', 'ResponseStatus': 'F', 'ResponseData': None})

最佳答案

链接文档中的 recursive_dict 方法在结果中不包含 XML 属性。假设,对于具有属性但没有内容(自闭合标记)的 XML 元素,您希望将属性作为字典值获取,以下是 recursive_dict 的修改版本> 会做:

def recursive_dict(element):
if element.text == None and len(element.attrib):
return element.tag, element.attrib
return element.tag, \
dict(map(recursive_dict, element)) or element.text

关于python lxml.etree._Element 到 JSON 或 dict,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42925074/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com