[英]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.