问题标签 [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 投票
2 回答
37 浏览

python - 由于格式不同,无法从 XML 文件中提取数据

我有一个脚本,它需要一堆 XML 文件,所有格式都是:HMDB61152.xml并将它们全部拉入 using glob. 对于每个文件,我需要提取每个文件的一些详细信息,例如accessionnamediseases. 解析我使用的每个 XML,xmltodict因为我传统上喜欢使用列表而不是 XML 文件,尽管由于我面临的问题,我可能需要改变我的策略。

我能够轻松地提取nameacc因为所有 XML 文件都将它放在树的同一第一级:

path = '/Users/me/Downloads/hmdb_metabolites' for data_file in glob.glob(os.path.join(path,'*.xml')): diseases=[] with open(data_file) as fd: doc = xmltodict.parse(fd.read()) name = doc['metabolite']['name'] acc = doc['metabolite']['accession']

所以基本上在这一点上,疾病信息有三个选项:

  1. 每棵树中有多个disease标签。diseases即,给定的种质有两种或多种疾病。
  2. disease树中有一个diseases意味着该种质只有一种疾病。或者
  3. 树上根本没有diseasediseases

我需要编写一个可以处理任何三种情况的循环,这就是我失败的地方。到目前为止,这是我的方法:

所以问题是,对于有多种疾病的情况,我需要按以下格式提取它们的名称:doc['metabolite']['diseases']['disease'][x]['name']对于疾病中的每个x。但是对于那些只有一种疾病的,他们根本没有索引,所以我能提取出那种疾病的名字的唯一方法就是做doc['metabolite']['diseases']['disease']['name']

该脚本失败是因为一旦我们遇到只有一种疾病的案例,它就会在尝试测试 if 时返回 KeyError doc['metabolite']['diseases']['disease'][0]) == True。如果有人可以帮助我解决这个问题,那就太好了,或者指导我采取更合适的策略。

0 投票
2 回答
137 浏览

python - 将包添加到 Linux 中 Python 的特定安装

我正在尝试将 xmltodict 包添加到 Linux 上的 Python。

我在我的 Linux 版本上安装了 2 个 Python;Python 2.7(默认)和 Python 3.5(以 Anaconda 安装的形式)。我想将 xmltodict 添加到 Python 3 安装中,但是当我使用sudo apt-get install python-xmltodict它时,会将其添加到默认的 Python 2.7 安装中。

如何在不更改默认值或使用 pip 的情况下将此包添加到我的 Python 3 安装中?我也不想用虚拟环境重建我的安装

0 投票
1 回答
399 浏览

python - 使用 Python 的 xmltodict,我如何引用非特定的 XML 属性并更改值?

我有一个这样的xml文件:

是否有可能使用 xmltodict 在不知道具体索引的情况下找到属性“SecondProp”并将值从“二”更改为“十七”?(以下)

代码:

输出:

0 投票
1 回答
427 浏览

python - OrderedDict:无法使用键 key 返回 d 的项目。引发 KeyError

访问 xmltodict 转换后的值。我有一个看起来像这样的 xml

我正在尝试访问 CASE 字典。如果我删除第二个 XML 行并尝试返回 d[PQ]['CASE'],我会得到想要的结果这是代码:

d 的输出如下所示:

0 投票
0 回答
2694 浏览

python - Python - 比较大型 XML 文件

Python - 2.7.3 我想比较两个 xml 文件(大小约为 - 100 MB) 我根据此线程的讨论更新了代码。 比较python中的两个xml文件

我使用 element.iter() 而不是 GetChildren()。出于测试目的,我编辑了 xml 文件并使其非常短,即 1MB 大小。

以下是代码。

我这样称呼它

但它给了我以下错误

我究竟做错了什么?Zip 功能是否非常繁重,难以循环?有没有替代方案。在进行 XML 比较时,我想比较 a)Text B)tag

0 投票
2 回答
250 浏览

python - xmltodict 将非类型输出转换为列表

我有一个来自 xmltodict 的基本示例,它紧跟项目 github 页面上给出的示例。

对于这个 xml

这可以很好地打印出所有书籍,但是,书名是 NoneType ,我无法迭代输出或将它们强制到列表中。

如何使返回的输出成为字符串列表?

0 投票
1 回答
361 浏览

python - Python 使用 xmltodict 读取第三个标签

XML 文件的一部分:

我读取 xmlfile 的 python 代码:

使用 Program(),我将从 xml 文件中得到一个包含类型和代码标记的列表。

我现在正试图弄清楚如何从中取出 lang 标签并制作一个类似于上面的列表,但只有 Code 和 Lang 标签

我创建了一个新变量:

当我打印这个我得到一个错误

谁能说我做错了什么?请使用简单易读的python代码。我是一名学生,开始学习python。

谢谢

0 投票
0 回答
1867 浏览

python - xmltodict 在 xml 文件的第一行失败

python脚本中的这一行:

生成此错误:

文件的第一行是:

我错过了什么?注意:开头的 BOM 在 linux 命令行中没有通过 head 显示(以上文字来自 Win10)。欢迎提出建议!以前从来没有用过 XML,我的运气今天结束了......

编辑:我能够通过首先打开()文件来解决它,但这似乎应该是不必要的?

0 投票
1 回答
250 浏览

python - Python 从 OrderedDicts 列表中提取值

我已经使用 xmltodict 解析了一个 XML 文件,并且我发现了<coordinates>我希望从中提取 lat & long 值以添加到数据框的标记的路径。这是一个小样本:

路径如下。

这是一个非常长的 xml 文档,有 4 个Folder标签,但我只需要第一个中的值['Folder'][0]。我不知道该怎么做是遍历所有['Placemark'][n]直到提取所有坐标。

我已经尝试了几件事,最后一个在下面,这是尝试开始找到正确的标签。但无济于事。

追溯:

任何帮助表示赞赏。

0 投票
1 回答
325 浏览

python - 无法在 lxml.objectify 中设置子值

我正在尝试使用使用 XML 的宁静界面。我已将 XML 库的选择范围缩小到两个。

根据文档,lxml.objectify 似乎是我的首选选项,但我很挣扎。

Xmltodict 似乎产生了更多的类型,并且可能不那么 Pythonic,但我似乎能够取得更多进展。

我有一个我用两者做的例子。Xmltodict 正在工作,但使用 xml.objectify 我似乎无法弄清楚如何访问/更改凭据的子元素。我的假设是我可以使用点符号来获取用户名和密码,但我没有成功。

一、xmltodict代码:

现在,lxml.objectify。

使用 lxml.objectify 我得到以下异常:

谁能指出我怎样才能让 lxml.objectify 工作?我应该坚持使用 xmltodict 吗?