Python NBA统计数据

时间:2015-03-21 20:39:26

标签: python xml xml-parsing elementtree

我正在尝试使用以下XML http://api.cbssports.com/fantasy/stats?version=3.0&timeframe=2014&period=ytd&SPORT=basketball

打印每位玩家的玩家ID和PPG

然而,当我打印时,没有打印任何内容,我不知道原因:

from urllib2 import Request, urlopen, URLError
import xml.etree.ElementTree as ET

request = Request('http://api.cbssports.com/fantasy/stats?version=3.0&timeframe=2014&period=ytd&SPORT=basketball')

try:
    response = urlopen(request)
    tree = ET.parse(response)
    root = tree.getroot()
    for stats in root.findall('.//player_stats/stats'):
        id = stats.get('player_id')
        PPG = stats.get('stat abbr="PPG"')
        print id, PPG
except URLError, e:
    print 'error:', e

1 个答案:

答案 0 :(得分:2)

stats不是player_stats的直接孩子。

相反,迭代player个节点,从id字典中获取attrib。为了PPG值,请使用findtext()

for stats in root.findall('.//player_stats/player'):
    id = stats.attrib.get('id')
    PPG = stats.findtext('.//stat[@abbr="PPG"]')
    print id, PPG

打印:

1992786 24.6
307818 12.2615384615385
555968 12.375
...