0

温度、露点、高度計などを解析できる基本的なスクリプトがあります。ただし、空の状態などの条件付き文字列を解析するにはどうすればよいですか? データを解析して印刷したいと思います: たとえば、「空の状態: 2000 フィート AGL で少数」。

import xml.etree.ElementTree as ET
from urllib import urlopen

link = urlopen('http://weather.aero/dataserver_current/httpparam?dataSource=metars&       requestType=retrieve&format=xml&stationString=KSFO&hoursBeforeNow=1')

tree = ET.parse(link)
root = tree.getroot()

data = root.findall('data/METAR')
for metar in data:
    print metar.find('temp_c').text
4

1 に答える 1

2

取得しているページには、次のような構造があります。

<METAR>
  <!-- snip -->
  <sky_condition sky_cover="FEW" cloud_base_ft_agl="2000"/>
  <sky_condition sky_cover="BKN" cloud_base_ft_agl="18000"/>
</METAR>

したがって、あなたが求めているのは、XML 属性を抽出する方法です。xml.etree.ElementTree ドキュメントには、これらが という辞書に格納されていると記載されていattribます。したがって、コードは次のようになります。

data = root.findall('data/METAR')
for sky in data.findall('sky_condition'):
    print "Sky Condition: {0} at {1} ft AGL".format(
        sky.attrib['sky_cover'],
        sky.attrib['cloud_base_ft_agl']
      )
于 2012-10-23T14:28:24.860 に答える