2015-03-21 1 views
0

Я пытаюсь напечатать игрока идентификаторами и PPG для каждого игрока в следующем XML http://api.cbssports.com/fantasy/stats?version=3.0&timeframe=2014&period=ytd&SPORT=basketballPython NBA Статистика

Однако при печати ничего не печатается, и я не знаю, почему:

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 
+0

почитав документацию и глядя на ответ должно быть на самом деле достаточно, чтобы понять это ... - https: // документы .python.org/2/библиотека/xml.etree.elementtree.html – matino

ответ

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