如何使用 python 将 xml 文件转换为 JSON?

2023-11-27

我有一个 XML 文件,我想使用 python 将其转换为 JSON 文件,但它对我来说不起作用。

<?xml version="1.0"?>
<note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Don't forget me this weekend!</body>
</note>

我使用 ElementTree 解析上面的 XML 文件并将其交给 Simplejson 进行序列化,如下所示:

from xml.etree import ElementTree as ET
import simplejson

tree = ET.parse(Xml_file_path)
simplejson.dumps(tree)

它给了我一个错误: TypeError: 0x00C49DD0 处的 xml.etree.ElementTree.ElementTree 对象不可 JSON 序列化。


另一种选择是xmltodict(完全披露:我写的)。它可以帮助您将 XML 转换为 dict+list+string 结构,如下所示“标准”. It is Expat基于,因此速度非常快,并且不需要将整个 XML 树加载到内存中。

获得该数据结构后,您可以将其序列化为 JSON:

import xmltodict, json

o = xmltodict.parse('<e> <a>text</a> <a>text</a> </e>')
json.dumps(o) # '{"e": {"a": ["text", "text"]}}'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 python 将 xml 文件转换为 JSON? 的相关文章

随机推荐

  • “phpinfo():依赖系统的时区设置是不安全的......”[重复]

    这个问题在这里已经有答案了 在运行 Blue box FreeSwitch PBX 前端 的 php 安装脚本时 我收到有关时区故障的错误 然后我开始挖掘 我不确定此时发生了什么 但这是我所拥有的 我在 public html 目录中创建了
  • MS Access - 链接到另一个 Access 数据库中的查询

    如何链接来自另一个 MS Access 数据库的查询 我知道我可以轻松链接表格 但我不知道如何链接查询 该查询从许多我不想链接的表中获取数据 你可以这样做 SELECT RemoteQueryname FROM RemoteQuerynam
  • .NET WebClient.UploadValues 与 WebClient.UploadData

    我正在编写一个类库来在我控制之外的站点上执行操作 该网站正在接受表单帖子作为输入 谁能告诉我这两种方法除了上传数据的形式之外是否有区别 System Net WebClient UploadData Uri Byte System Net
  • scanf("%[^\n]s",a) 与 gets(a)

    有人告诉我 当用户输入字符串时不应使用 scanf 相反 大多数专家以及 StackOverflow 上的用户都使用 gets 我从来没有在 StackOverflow 上问过为什么不应该使用 scanf 而不是 gets 来处理字符串 这
  • C++ 循环遍历 Map

    我想迭代中的每个元素map
  • Mono 准备好迎接黄金时段了吗? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 有人在大型或中型项目中使用过 Mono 开源 NET 实现 吗 我想知道它是否适合现实世界的生产环境 它稳定 快速 兼容 足以使用吗 将项目移植到 Mono 运行时是否需要花费很多精力 或
  • 颤动相机插件

    我对 Flutter 和 Dart 都很陌生 我正在尝试使用相机插件了解事情是如何运作的 我找到的所有示例都有这部分 List
  • Galaxy S5 上的 FOCUS_MODE_CONTINUOUS_PICTURE 出现问题

    我正在开发一个使用相机预览和拍照的 Android 应用程序 我用FOCUS MODE CONTINUOUS PICTURE使用 Galaxy S4 发现对焦效果非常好 然而 在 Galaxy S5 上FOCUS MODE CONTINUO
  • iCarousel 停在用户选择的索引处

    EDIT 我正在制作一个像老虎机一样的应用程序 我补充道iCarousel对于槽对象 所以我有一个按钮可以旋转iCarousel 在我的 iCarousel 视图中 有两个插槽 Slot1 和 Slot2 下面是我的iCarouselVie
  • 使用 mongoose 切换数据库

    您好 有没有办法用 mongoose 切换数据库 我想我可以这样做 mongoose disconnect mongoose connect localhost db 但它不起作用我收到此错误 Error Trying to open un
  • NextJS TypeError:无法读取 null 的属性(读取“长度”)

    有人知道这个错误的原因吗 warn Fast Refresh had to perform a full reload Read more https nextjs org docs basic features fast refresh
  • 如何在 Chrome 上设置音频自动播放

    音频自动播放可以在 Mozilla Microsoft Edge 和旧版 Google Chrome 中使用 但不能在由于自动播放政策发生变化 Google Chrome 67 他们已阻止自动播放 直到满足链接博客文章中指定的特定会话条件
  • 从IP地址获取子网

    我正在尝试获取我拥有的 IP 地址的子网 Eg 1 子网掩码 255 255 255 0 Input 192 178 2 55 输出 192 178 2 0 2 子网掩码 255 255 0 0 Input 192 178 2 55 输出
  • CSS 粘性标题

    我在主页上添加了一个粘性标题 但是粘性标题似乎位于页面上其余内容的后面 因此当我向下滚动页面时 图像和文本位于标题顶部 有没有办法停止这个 这是我的代码
  • 每个 HTTP/会话请求的全局数据?

    问题 有没有办法在每个会话 http 请求中创建变量存储 该变量必须是全局可访问的 并且每个 HTTP 请求 连接 会话都不同 并且不需要在函数之间传递 例如 只是为了说明 setVariableThatCanBeAccessedByThi
  • 如何在 Eclipse 中更新我的 ADT?

    我尝试过更新我的 Eclipse 目前我的 Eclipse 中已经有 2 2 Android SDK 了 昨天我更新了我的 Eclipse 如下所示 Eclipse gt 窗口 gt Android SDK Manager gt 我已选中列
  • PHP 连接两个变量名

    我有一个 php 脚本 它得到 POST决定返回哪个数组 前任 n POST n 1 2 or 3 a1 array something something else another thing a2 array something 2 s
  • 如何使用 node.js 从“AWS dynamodb”获取/扫描所有项目

    如何获取 扫描所有项目AWS dynamodb using node js 我在这里发布我的代码 var docClient new aws DynamoDB DocumentClient var params TableName user
  • 如果安装了SQL Server(标准版),如何通过代码获取服务器名称

    如果安装了SQL Server 标准版 如何通过代码获取服务器名称 我们在创建连接字符串来连接 SQL Server 时传递服务器名称 我们可以通过代码检索这个值吗 string sqlConnectionString string For
  • 如何使用 python 将 xml 文件转换为 JSON?

    我有一个 XML 文件 我想使用 python 将其转换为 JSON 文件 但它对我来说不起作用