我有一本名为job_highlight_dict
的字典,其中包含{job_id, JobHighlight}
job_id是数字,JobHighlight
是如下定义的类型:
class JobHighlight:
def __init__(self, display_salary, location, category):
self.display_salary = display_salary
self.location = location
self.category = category
我想将job_highlight_dict
转换为xml并将其写入磁盘,这是我尝试过的:
xml = dicttoxml.dicttoxml(self.job_highlight_dict)
file = open("export/path_%(time)s.xml", "wb")
file.write(xml)
file.close()
但出现以下错误:
TypeError:不支持的数据类型:
(JobHighlight)
答案 0 :(得分:1)
您将job_highlight_dict["JobHighlight"]
类型的JobHighlight
转换为字典。
代码
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()
或更简单地说:
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/
<?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>