簡體   English   中英

如何使用python從xml提取特定數據?

[英]How do I extract specific data from xml using python?

我是python的新手。 我一直在嘗試通過動手方法學習python(我通過做euler項目學習了c / c ++)。 現在,我正在學習如何從文件中提取數據。 我已經掌握了從簡單的文本文件中提取數據的竅門,但是我還是停留在xml文件上。 我正在嘗試做的一個例子。 我將我的通話記錄備份到了Google驅動器上,它們很多(大約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 ../>是這里的根元素,因此我們對此進行迭代。

注意:如果在提供的行之前有標簽/元素,則需要找出正確的根元素,而不是call

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

在這里您可以看到,我們可以iter element 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']

結果

>>> 
duration = 49
data = 1483514046018
>>> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM