问题标签 [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.
python - 由于格式不同,无法从 XML 文件中提取数据
我有一个脚本,它需要一堆 XML 文件,所有格式都是:HMDB61152.xml
并将它们全部拉入 using glob
. 对于每个文件,我需要提取每个文件的一些详细信息,例如accession
、name
和diseases
. 解析我使用的每个 XML,xmltodict
因为我传统上喜欢使用列表而不是 XML 文件,尽管由于我面临的问题,我可能需要改变我的策略。
我能够轻松地提取name
,acc
因为所有 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']
所以基本上在这一点上,疾病信息有三个选项:
- 每棵树中有多个
disease
标签。diseases
即,给定的种质有两种或多种疾病。 disease
树中有一个diseases
意味着该种质只有一种疾病。或者- 树上根本没有
disease
。diseases
我需要编写一个可以处理任何三种情况的循环,这就是我失败的地方。到目前为止,这是我的方法:
所以问题是,对于有多种疾病的情况,我需要按以下格式提取它们的名称:doc['metabolite']['diseases']['disease'][x]['name']
对于疾病中的每个x。但是对于那些只有一种疾病的,他们根本没有索引,所以我能提取出那种疾病的名字的唯一方法就是做doc['metabolite']['diseases']['disease']['name']
。
该脚本失败是因为一旦我们遇到只有一种疾病的案例,它就会在尝试测试 if 时返回 KeyError doc['metabolite']['diseases']['disease'][0]) == True
。如果有人可以帮助我解决这个问题,那就太好了,或者指导我采取更合适的策略。
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 安装中?我也不想用虚拟环境重建我的安装
python - 使用 Python 的 xmltodict,我如何引用非特定的 XML 属性并更改值?
我有一个这样的xml文件:
是否有可能使用 xmltodict 在不知道具体索引的情况下找到属性“SecondProp”并将值从“二”更改为“十七”?(以下)
代码:
输出:
python - OrderedDict:无法使用键 key 返回 d 的项目。引发 KeyError
访问 xmltodict 转换后的值。我有一个看起来像这样的 xml
我正在尝试访问 CASE 字典。如果我删除第二个 XML 行并尝试返回 d[PQ]['CASE'],我会得到想要的结果这是代码:
d 的输出如下所示:
python - Python - 比较大型 XML 文件
Python - 2.7.3 我想比较两个 xml 文件(大小约为 - 100 MB) 我根据此线程的讨论更新了代码。 比较python中的两个xml文件
我使用 element.iter() 而不是 GetChildren()。出于测试目的,我编辑了 xml 文件并使其非常短,即 1MB 大小。
以下是代码。
我这样称呼它
但它给了我以下错误
我究竟做错了什么?Zip 功能是否非常繁重,难以循环?有没有替代方案。在进行 XML 比较时,我想比较 a)Text B)tag
python - xmltodict 将非类型输出转换为列表
我有一个来自 xmltodict 的基本示例,它紧跟项目 github 页面上给出的示例。
对于这个 xml
这可以很好地打印出所有书籍,但是,书名是 NoneType ,我无法迭代输出或将它们强制到列表中。
如何使返回的输出成为字符串列表?
python - Python 使用 xmltodict 读取第三个标签
XML 文件的一部分:
我读取 xmlfile 的 python 代码:
使用 Program(),我将从 xml 文件中得到一个包含类型和代码标记的列表。
我现在正试图弄清楚如何从中取出 lang 标签并制作一个类似于上面的列表,但只有 Code 和 Lang 标签
我创建了一个新变量:
当我打印这个我得到一个错误
谁能说我做错了什么?请使用简单易读的python代码。我是一名学生,开始学习python。
谢谢
python - xmltodict 在 xml 文件的第一行失败
python脚本中的这一行:
生成此错误:
文件的第一行是:
我错过了什么?注意:开头的 BOM 在 linux 命令行中没有通过 head 显示(以上文字来自 Win10)。欢迎提出建议!以前从来没有用过 XML,我的运气今天结束了......
编辑:我能够通过首先打开()文件来解决它,但这似乎应该是不必要的?
python - Python 从 OrderedDicts 列表中提取值
我已经使用 xmltodict 解析了一个 XML 文件,并且我发现了<coordinates>
我希望从中提取 lat & long 值以添加到数据框的标记的路径。这是一个小样本:
路径如下。
这是一个非常长的 xml 文档,有 4 个Folder
标签,但我只需要第一个中的值['Folder'][0]
。我不知道该怎么做是遍历所有['Placemark'][n]
直到提取所有坐标。
我已经尝试了几件事,最后一个在下面,这是尝试开始找到正确的标签。但无济于事。
追溯:
任何帮助表示赞赏。
python - 无法在 lxml.objectify 中设置子值
我正在尝试使用使用 XML 的宁静界面。我已将 XML 库的选择范围缩小到两个。
根据文档,lxml.objectify 似乎是我的首选选项,但我很挣扎。
Xmltodict 似乎产生了更多的类型,并且可能不那么 Pythonic,但我似乎能够取得更多进展。
我有一个我用两者做的例子。Xmltodict 正在工作,但使用 xml.objectify 我似乎无法弄清楚如何访问/更改凭据的子元素。我的假设是我可以使用点符号来获取用户名和密码,但我没有成功。
一、xmltodict代码:
现在,lxml.objectify。
使用 lxml.objectify 我得到以下异常:
谁能指出我怎样才能让 lxml.objectify 工作?我应该坚持使用 xmltodict 吗?