You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python 3.x实现带属性与文本值的XML等效字典求助

解决方法与工具包建议

你的问题核心是用普通字典结构时,第4行代码直接覆盖了parent对应的字典对象,导致属性丢失。下面提供几种可行的解决方案及工具库:

1. 使用Python标准库 xml.etree.ElementTree

无需额外安装,直接通过元素对象同时设置属性和文本:

import xml.etree.ElementTree as ET

# 创建带属性的元素
parent = ET.Element("parent", name="abc")
# 设置元素文本内容
parent.text = "123"

# 生成XML字符串(unicode编码避免乱码)
xml_result = ET.tostring(parent, encoding='unicode')
print(xml_result)

输出结果:

<parent name="abc">123</parent>

2. 使用第三方库 dicttoxml

如果偏好字典转XML的方式,dicttoxml支持通过特定键区分属性和文本:
首先安装库:

pip install dicttoxml

然后调整字典结构,用#text表示元素文本,_前缀表示属性:

import dicttoxml

my_dict = {
    "parent": {
        "_name": "abc",
        "#text": "123"
    }
}

# 生成XML(root=False避免自动添加根节点)
xml_result = dicttoxml.dicttoxml(my_dict, root=False).decode('utf-8')
print(xml_result)

3. 使用功能更强的第三方库 lxml

lxml是更高效的XML处理库,支持更多高级特性(如XPath、XML Schema验证):
安装库:

pip install lxml

代码示例:

from lxml import etree

parent = etree.Element("parent", name="abc")
parent.text = "123"

# 生成格式化的XML字符串
xml_result = etree.tostring(parent, encoding='unicode', pretty_print=True)
print(xml_result)

内容的提问来源于stack exchange,提问作者cloud jockey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 12:23:27