我試圖解析來自National Weather Service的XML;打印小時溫度,空白空間以及該小時溫度的相關時間。在Python for循環中迭代生成器
打印溫度只需要一個for循環。問題是在循環和打印每個溫度時編制正確的時間標記。/data/time-layout中的示例子代碼如下所示:
<layout-key>k-p1h-n1-0</layout-key>
<start-valid-time>2014-06-30T13:00:00-05:00</start-valid-time>
<end-valid-time>2014-06-30T14:00:00-05:00</end-valid-time>
<start-valid-time>2014-06-30T14:00:00-05:00</start-valid-time>
<end-valid-time>2014-06-30T15:00:00-05:00</end-valid-time>
所需的片段都是且僅有「啓動有效時間」節點。
下面是代碼我迄今爲止:
import elementtree.ElementTree as ET
import urllib2
url = "http://forecast.weather.gov/MapClick.php?lat=36.06000&lon=-94.16000&FcstType=digitalDWML"
tree = ET.parse(urllib2.urlopen(url))
forecast = tree.getroot()
i = int(0)
Temperatures = forecast.find("./data/parameters/temperature[@type='hourly']")
for HourTemperature in Temperatures:
TimeStamps = forecast.findall("./data/time-layout/start-valid-time") #Reference 1
print HourTemperature.text, " ", TimeStamps[i].text #Reference 2
i += 1
運行「蟒[節目名稱] py」爲產量
TypeError: 'generator' object has no attribute '__getitem__'
這是合理的時上述線附圖1和2是錯誤。我相信我的問題是由於對發電機的誤解造成的。
提前感謝ya'll。
你確定你的'import'語句正確嗎?據我瞭解,「import elementtree.ElementTree as ET' - 應該是'import xml.etree.ElementTree as ET'。該代碼適用於我,沒有錯誤。 – alecxe
感謝您的評論,alexce。你得到什麼輸出? – sjMoquin
'2014-06-30T14:00:00-05:00'到'2014 2014-07-07T13:00:00-05:00'的多行。 – alecxe