如何使用 python 从 xml 中提取特定数据?

2024-01-12

我对 python 比较陌生。我一直在尝试通过实践方法学习Python(我通过做euler项目学习了c/c++)。 现在我正在学习如何从文件中提取数据。我已经掌握了从简单文本文件中提取数据的窍门,但我有点陷入 xml 文件中。 我试图做的一个例子。 我在 Google Drive 上备份了通话记录,数量很多(大约 4000 条) 这是 xml 文件示例

<call number="+91234567890" duration="49" date="1483514046018" type="3" presentation="1" readable_date="04-Jan-2017 12:44:06 PM" contact_name="Dad" />

我想接听所有打给我爸爸的电话并像这样显示它们

number = 234567890
duration = "49"  date="04-Jan-2017 12:44:06 PM"
duration = "x"   date="y"
duration = "n"   date="z"

诸如此类。 你建议我怎样做?


建议在问题中提供足够的信息,以便可以重现问题。

<?xml version="1.0" encoding="UTF-8"?>
<call number="+91234567890" duration="49" date="1483514046018" type="3" 
 presentation="1" readable_date="04-Jan-2017 12:44:06 PM" 
    contact_name="Dad" />

首先我们需要弄清楚哪些元素可以iter在。自从<call ../>在这里是根元素,我们对其进行迭代。

NOTE:如果在提供的行之前有标签/元素,则需要找出正确的根元素而不是call.

>>> [i for i in root.iter('call')]
[<Element 'call' at 0x29d3410>]

在这里你可以看到,我们可以iter在元素上call.

那么我们简单地iter覆盖元素并根据要求分离出元素属性键和值。

工作代码

import xml.etree.ElementTree as ET
data_file = 'test.xml'
tree = ET.parse(data_file)
root = tree.getroot()

for i in root.iter('call'):
    print 'duration', "=", i.attrib['duration']
    print 'data', "=", i.attrib['date']

Result

>>> 
duration = 49
data = 1483514046018
>>> 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 python 从 xml 中提取特定数据? 的相关文章

随机推荐

  • 如何读取 ASP.NET 原始 URL 的查询字符串参数?

    我有一个变量 string rawURL HttpContext Current Request RawUrl 如何读取此 url 的查询字符串参数 这可能就是你想要的 Uri theRealURL new Uri HttpContext
  • JavaScript 数组与 JSON 响应的比较

    我正在处理这个项目 我需要从学校的时间表中获取所有空房间 我可以从 JSON 响应中获取数据 JSON 响应如下所示 status success reservations id 19598 subject subjectName modi
  • Linux cli 工具将 SQL Server 架构转储到文本文件

    您知道能够将 SQL Server 架构导出到文本文件的可靠命令行工具吗 您可以使用 mssql scripter 来完成此操作 下载通过 pip install mssql scripter 您要使用的命令类似于 mssql script
  • ios5 ARC 从 ARC 中排除文件的编译器标志是什么?

    谁能帮我记住告诉 XCode 对某些文件不使用 ARC 的标志是什么 我的项目中有几个文件被标记为这样 直到我添加了另一个文件并决定将该文件转换为 ARC 听起来很容易 对吧 我期望能够简单地检查我想要的文件并让 XCode 发挥它的魔力
  • Jenkins 内容安全策略

    我对詹金斯内容安全策略感到困惑 我知道这些网站 配置内容安全策略 https wiki jenkins ci org display JENKINS Configuring Content Security Policy 内容安全策略参考
  • 区分 VMware 网络适配器和物理网络适配器 - 或 - 检测虚拟网络适配器

    我必须使用任何 Windows API 来区分真实地址和虚拟机地址 我在用着GetAdaptersAddresses用于填充本地计算机的 IP 地址列表的 API 我只需要提取除与 VMware 网络适配器关联的地址和其他地址 自动配置和隧
  • 从 ExecutionEngine 调用 C/C++ 函数

    我正在学习 llvm 想要对我的想法进行概念验证 基本上 我想分割我的编译器和运行时 编译器将给出一个 bc 运行时将通过 ParseBitcodeFile 加载它并使用 ExecutionEngine 来运行它 这部分正在发挥作用 现在
  • 通过链接克服云代码解析限制 1000?

    我有以下函数 我用它来确定用户在记分牌中的排名 Parse Cloud define getUserGlobalRank function request response var usernameString request params
  • 如何从网格中检查复选框获取详细信息?

    我有EditorGridPanel 网格的ColumnModel包括TextField ComboBox和CheckBox 编辑 TextField 或 ComboBox 后 将触发 afteredit 事件 其中包含有关已编辑字段的详细信
  • 使用 es6 进行 chrome 调试

    我正在尝试在我的项目中使用 Ecmascript 2015 但我发现很难在特定位置添加断点 我认为设置断点是合乎逻辑的位置 我在 chrome 中将 enable javascript harmony 标志设置为 true 如果有帮助 但我
  • 如何使用 MiniTest 测试记录器消息?

    我有一个应用程序 我想测试我是否正确 来自我的记录器的消息 一个简短的示例 您可以在 log4r 和 logger 之间切换 gem minitest require minitest autorun require log4r requi
  • 共享首选项中的数据缓存

    我的应用程序中有 2 个进程 从一个进程我将数据保存到SharedPreferences 从第二个过程 检索 当我检索数据时 我收到SharedPreferences使用旧数据 我检查 xml 文件 发现当前文件中的数据和收到的数据不同 看
  • 在 GO 中使用 RSA-SHA 进行签名和解码

    我正在尝试签署一个字符串 然后用公钥验证它 我的验证结果为空 我究竟做错了什么 package main import crypto crypto rand crypto rsa crypto sha256 crypto x509 enco
  • 如何在 SwiftUI macOS 中创建急救人员

    我正在尝试制作我的文本字段 NSViewRepresentable包裹NSTextField 出现时的第一个响应者 我已经测试了很多答案thread https stackoverflow com questions 56507839 sw
  • 使用 VBA 隐藏数据透视表

    如何使用 VBA 隐藏数据透视表 我尝试访问 PivotTables index Visible 但没有Visible财产为PivotTable目的 如果用户更改某些复选框 我需要隐藏这些数据透视表 也许我可以将它们隐藏在白盒子后面 但在我
  • 如何将 ListItemCollection (dropdownlist.items) 转换为字典

    如何转换ListItemCollection DropDownList items to a Dictionary
  • 如何使用 IMAP 和 PHP 保存电子邮件中的图像附件?

    我已经成功编写了连接到我的邮件服务器并检索所有新邮件的标头和正文的脚本 我想更进一步检测附件是否存在 仅图像 如果存在 则下载到服务器 如何使用 PHP 和 IMAP 来实现这一点 提前致谢 KimNyholm 发布了一组 imap 客户端
  • 使用 ffmpeg 逐帧写入视频

    我正在尝试使用 ffmpeg 逐帧编写视频 如下所述 http zulko github io blog 2013 09 27 read and write video frames in python using ffmpeg http
  • 转换 Spark 数据框中的日期模式

    我在 Spark 数据框中有一列字符串数据类型 日期采用 yyyy MM dd 模式 我想以 MM dd yyyy 模式显示列值 我的数据是 val df sc parallelize Array steak 1990 01 01 2000
  • 如何使用 python 从 xml 中提取特定数据?

    我对 python 比较陌生 我一直在尝试通过实践方法学习Python 我通过做euler项目学习了c c 现在我正在学习如何从文件中提取数据 我已经掌握了从简单文本文件中提取数据的窍门 但我有点陷入 xml 文件中 我试图做的一个例子 我