代码之家  ›  专栏  ›  技术社区  ›  user2007843

Python NBA统计数据

  •  0
  • user2007843  · 技术社区  · 9 年前

    我试图用以下XML打印每个玩家的玩家ID和PPG http://api.cbssports.com/fantasy/stats?version=3.0&timeframe=2014&period=ytd&SPORT=basketball

    然而,当我打印时,没有打印任何内容,我不知道为什么:

    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 回复  |  直到 9 年前
        1
  •  2
  •   alecxe    9 年前

    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
    ...