问题标签 [xmltodict]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
206 浏览

python-3.x - Python - 如何解析这个嵌套的 xml 文件?

我正在尝试将此嵌套的 xml 文件解析为数据框。这是xml的示例:

我尝试使用 xmltodict 库,并且可以提取单个元素,但是由于它是嵌套的并且在 xml 中具有多个元素和测量值,因此当我尝试循环遍历它时,我无法使其正常工作。这是我到目前为止的代码:

我得到的错误是:“TypeError:字符串索引必须是整数”在元素中查找 m 的开头。

最终我想要得到的是这种格式的输出:

在此处输入图像描述

知道如何让它工作吗?

0 投票
0 回答
88 浏览

python - 无法从 xmltodict 的输出转换回 xml

我正在将 xml 文件导入 dict 并进一步将该 dict 转换为 Json。

我有一个应用程序来更改 JSON 文件并将该 json 文件导入 Ordered Dict。之后,我需要将有序 dict 转换回原始 xml 文件格式。

我已经尝试过 dicttoxml 库(参见:https ://pypi.org/project/dicttoxml/ ),但输出格式与原始格式不匹配。

任何人都可以建议任何其他库或任何解决方法吗?

0 投票
1 回答
21 浏览

json - XML 转 JSON

最终成为列表

我有许多 xml 文件,我会将它们转换为 JSON,然后将其加载到 openRefine 或 pandas 数据框中进行分析。xml文件看起来像

我试过这段代码

但 JSON 文件看起来像

这是 26 行,没有挪威字符的编码!

我拥有一切

在一排

0 投票
0 回答
138 浏览

python - 在 Python 中使用 xmltodict 的 MemoryError

我正在尝试将数据集的 XML 文件 HMDB 解析为字典Saliva Metabolites列表。这样做,使用xmldict包。我尝试创建的数据格式和输出结构首先在发布的预览问题中编码段落。

这是代码:

现在,当尝试访问特定键时,例如:

我正在使用 Pycharm 并在注意到的对象旁边data_dict写着:Unable to get repr for <class 'dict'>

不知道我的系统还需要什么其他信息:

任何想法,提示或线索将不胜感激

0 投票
1 回答
485 浏览

python - xmltodict: 解析引发 ValueError('Document 必须只有一个根。') - Python 3

目标是将 JSON 转换为 XML
代码读取 JSON.txt,将其转换为 XML 并将其写入 JSON_to_xml.txt。下面的代码在解析时返回一个值错误,给出一个文件有多个根的错误,即使它只有一个根。

JSON.txt的内容如下,

如果我只是将文件的内容复制到脚本中,如下所示,它会以正确的 XML 格式提供输出。

非常感谢您的意见和建议。谢谢你。

0 投票
1 回答
128 浏览

xmltodict - xmltodict parse/unparse 产生不产生相同的 xml 文件

我正在使用以下代码片段来读取下面显示的示例 xmlTest1.xml 文件。

在阅读了 parse() 之后,我执行了一个 unparse(),然后是一个未解析的 print()。未解析的文件与原始 XML 文件不同。我需要 unparsed() 文件与输入相同。

为什么会发生这种情况,我该如何纠正????

在这里很迷失。请帮忙。

0 投票
1 回答
84 浏览

python - Python 字典 - 循环问题(嵌套) | TypeError:列表索引必须是整数或切片,而不是 str

我正在尝试遍历嵌套字典,但不断收到错误消息:列表索引必须是整数或切片,而不是 str。

这是我试图循环并使用 xmltodict 转换为字典的数据:

有序字典结构

和文本(尽可能简单)作为文本。

我可以使用以下方法在属性分支中获取 InstanceElements 的 ID:

但是,当我尝试遍历 InstanceProperty(更深一层)时,我只能通过索引访问它来做到这一点:

否则我会得到一个错误:TypeError:列表索引必须是整数或切片,而不是 str。我想查看字典中的所有 InstanceProperty 项

我该怎么做?当我试图获取分配给其所有子项(InstanceProperty)的 InstanceElement 的 ID 时。

提前致谢!!

标记

0 投票
1 回答
209 浏览

python - 用python将XML转换为JSON,JSON中子节点后面的父属性

我需要使用 python 将一个文件 XML 转换为 JSON,但是我需要将父亲的属性放在 JSON 中的子节点之后

我现在的代码是这样的。

我需要这个;

代替:

不按字母顺序更改 sort_keys=False,我只需要将节点父亲的属性更改为最终。

在某些网站上制作我需要的内容: https ://www.convertjson.com/xml-to-json.htm

还有一个不怎么样:

http://www.utilities-online.info/xmltojson/#.X_crINhKiUk

有人可以帮助我吗?

0 投票
1 回答
332 浏览

python - 使用 xmltodict 从 XML 为有时重复的元素生成一致的 JSON

为了使用 python 将 XML 转换为 JSON,存在几种方法,它们通常归结为相同的原理。今天引用最多的方法是 xmltodict。

我正在尝试将多个 xml 文档转换为 JSON,但是如果在某些文档中重复的元素出现一次,则会遇到问题:在这些情况下,生成的不是列表而是对象。这种不一致会导致在例如 spark 中摄取 JSON 时出现问题,它无法再推断 json 元素的模式(该元素是列表还是字符串?)并将其转换为字符串。我们怎样才能最好地解决这个问题?理想情况下,解析器将采用模式(XSD)并“学习”元素可以是无界的,因此应该是一个列表,即使它们是单独的。

  1. 有没有使用 XSD 将 XML 转换为 JSON 的方法?
  2. 是否有其他可能的解决方法?例如,我正在考虑将每个非列表项放入列表中,但这会产生开销。

这是一些显示问题的代码

将 xml1 输出为 JSON:

对于 xml2

解决方法可能是:

生成:

但是对于从不重复的元素,在非常复杂的 xml 结构中效率会降低。

0 投票
1 回答
318 浏览

python - 使用 Python 将 Atom 或 OData XML 文件转换为 OData Json 文件

我一直在尝试将 PowerShell 脚本转换为 Python 代码以从 Sharepoint 下载列表文件。到目前为止,大部分编码部分已完成并执行良好。但是,当我将文件从 Sharepoint 下载到具有 .json 扩展名的本地驱动器时,文件内容与预期不符。

Sharepoint 列表内容类型为 => content-type: application/atom+xml;type=feed;charset=utf-8,采用 xml 格式。由于我无法将内容保存为 .json 格式,因此我已将文件下载为 .xml 并使用 xmltodict python 包将其转换为 .json,到目前为止效果还不错。

这是我的实际查询:我们如何下载带有 .json 的 xml 内容或将 xml 文件转换为没有属性类型、标签和命名空间等的 json 文件?我们需要以下面的 PowerShell 脚本生成的输出格式下载文件,不带任何标签,只带有键值对。

我只是共享示例文件内容,而不是复制整个内容,因为它涉及一些敏感数据。

这是原子 xml 格式/Odata xml 的 Sharepoint Web url 内容。

这是 Python 转换的 json 数据

PowerShell 下载的 Json 文件

{"odata.metadata":"https://myorg.sharepoint.com/sites/pwaeng/_api/$metadata#SP.ListData.Program_x0020_RisksListItems","value":[{"odata.type":"SP.Data .Program_x0020_RisksListItem","odata.id":"a878d166-c19d-4c16-82b4-e150e7e49626","odata.etag":""2"","odata.editLink":"Web/Lists

下面是 Python 代码的一部分。我已经尝试了大多数选项,但没有获得所需的输出。