首页 > 解决方案 > 通过验证模式将 XML 转换为 Python 中的 JSON

问题描述

我想将 XML 转换为 JSON 格式。我在python中发现了很多包(xmltodict)可以做到这一点,但是当节点中只有一个元素时,它会将其转换为字典,但根据我拥有的模式,即使只有一个元素也应该放置在一个列表。例如:

<books>
  <book>
    <name> bookName </name>
  </book>
</books>

预期的输出是:

 "books":[{
      "book":[{
           "name" : "bookName"
}]
}]
}

我得到的当前输出是:

{
"books":
    {
    "book":
        { 
        "name" : "bookName" 
        }
    }
} 

只有当只有一个元素时才会发生这种情况。我正在尝试通过验证我拥有的 json 模式来找到一种将 xml 转换为 json 的方法。我尝试使用 DECLXML 包,但是当 xml 中不存在节点时,它会创建空数组。如果有人可以帮助我,那将非常有帮助

标签: pythonjsonpython-3.xxml

解决方案


看来,您的示例<book>只有一条记录,并且只有一条name作为有关您的书的信息。因此,您的代码没有在输出 JSON 中创建列表。

您是否尝试使用xmltodict模块作为替代方式?

https://www.geeksforgeeks.org/python-xml-to-json/


推荐阅读