的XML的格式如下Python腳本,從一個網址動態讀取XML數據(例如http://www.wrh.noaa.gov/mesowest/getobextXml.php?sid=KCQT&num=72):
<station id="KCQT" name="Los Angeles/USC Campus Downtown" elev="179" lat="34.02355" lon="-118.29122" provider="NWS/FAA">
<ob time="04 Oct 7:10 pm" utime="1507169400">
<variable var="T" description="Temp" unit="F" value="61"/>
<variable var="TD" description="Dewp" unit="F" value="39"/>
<variable var="RH" description="Relh" unit="%" value="45"/>
</ob>
<ob time="04 Oct 7:05 pm" utime="1507169100">
<variable var="T" description="Temp" unit="F" value="61"/>
<variable var="TD" description="Dewp" unit="F" value="39"/>
<variable var="RH" description="Relh" unit="%" value="45"/>
</ob>
<ob time="04 Oct 7:00 pm" utime="1507168800">
<variable var="T" description="Temp" unit="F" value="61"/>
<variable var="TD" description="Dewp" unit="F" value="39"/>
<variable var="RH" description="Relh" unit="%" value="45"/>
</ob>
<ob time="04 Oct 6:55 pm" utime="1507168500">
<variable var="T" description="Temp" unit="F" value="61"/>
<variable var="TD" description="Dewp" unit="F" value="39"/>
<variable var="RH" description="Relh" unit="%" value="45"/>
</ob>
</station>
我只想檢索所有可用日期的時間戳和小數溫度(「Temp」)(這裏有4個以上)。
輸出應該是一個CSV格式的文本文件,其中時間戳和溫度值每行打印一對。
下面是我的代碼(這是可怕的,並沒有在所有的工作)的嘗試:
import requests
weatherXML = requests.get("http://www.wrh.noaa.gov/mesowest/getobextXml.php?sid=KCQT&num=72")
import xml.etree.ElementTree as ET
import csv
tree = ET.parse(weatherXML)
root = tree.getroot()
# open file for writing
Time_Temp = open('timestamp_temp.csv', 'w')
#csv writer object
csvwriter = csv.writer(Time_Temp)
time_temp = []
count = 0
for member in root.findall('ob'):
if count == 0:
temperature = member.find('T').var
time_temp.append(temperature)
csvwriter.writerow(time_temp)
count = count + 1
temperature = member.find('T').text
time_temp.append(temperature)
Time_Temp.close()
請幫助。
我怎麼沒看到「時間的年,月,日,分,秒和區偏移」在XML中表示文件。 –
@BillBell對不起,我編輯了這個要求。時間戳現在將遵循xml文件中表示的格式。謝謝。 – WandaW
「沒有工作」......你得到了什麼錯誤?它應該已經炸掉了,只是解析文件。改爲使用'ET.fromstring(weatherXML.text)'。 –