首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将复杂类型的字典转换为xml

将复杂类型的字典转换为xml
EN

Stack Overflow用户
提问于 2020-07-11 04:55:37
回答 1查看 171关注 0票数 0

我有一本名为job_highlight_dict的字典,它包含{job_id, JobHighlight}

job_id是number,JobHighlight是一种类型,定义如下:

代码语言:javascript
复制
class JobHighlight:
    def __init__(self, display_salary, location, category):
        self.display_salary = display_salary
        self.location = location
        self.category = category

我想将job_highlight_dict转换为xml并将其写入磁盘,这是我尝试过的:

代码语言:javascript
复制
xml = dicttoxml.dicttoxml(self.job_highlight_dict)
file = open("export/path_%(time)s.xml", "wb")
file.write(xml)
file.close()

但我得到了以下错误:

TypeError:不支持的数据类型:< 0x000002D00FA48E88> (JobHighlight)

上的JobHighlight对象

EN

回答 1

Stack Overflow用户

发布于 2020-07-11 05:12:01

job_highlight_dict["JobHighlight"]JobHighlight类型转换为字典。

代码语言:javascript
复制
job_highlight_dict["JobHighlight"] = {
    "display_salary": job_highlight_dict["JobHighlight"].display_salary,
    "location": job_highlight_dict["JobHighlight"].location,
    "category": job_highlight_dict["JobHighlight"].category
}
xml = dicttoxml.dicttoxml(job_highlight_dict)
file = open("paths.xml", "wb")
file.write(xml)
file.close()

或者更简单地说:

代码语言:javascript
复制
job_highlight_dict["JobHighlight"] = vars(job_highlight_dict["JobHighlight"])
xml = dicttoxml.dicttoxml(job_highlight_dict)
file = open("paths.xml", "wb")
file.write(xml)
file.close()

请参阅:Python dictionary from an object's fields

输出示例

我对此进行了格式化,但在文件中,xml将全部显示在一行上。如果您想要格式化,您将不得不使用漂亮的打印或类似的东西。请参阅:https://pypi.org/project/dicttoxml/

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" ?>
<root>
    <job_id type="int">2</job_id>
    <JobHighlight type="dict">
        <display_salary type="str">$80k</display_salary>
        <location type="str">Los Angeles</location>
        <category type="str">Other</category>
    </JobHighlight>
</root>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62845343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档