2015-09-01 1 views
0

Я пытаюсь перебрать все теги в «ватин» в данном файле XML с помощью ElementTree, используя следующий код:не в состоянии перебрать элементы конкретного ребенка в XML

import xml.etree.cElementTree as ET 
import requests 
f = "https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20cricket.player.profile%20where%20player_id%3D" 
s = "2962&diagnostics=true&env=store%3A%2F%2F0TxIGQMQbObzvU4Apia0V0" 

ans = f + s 
tree = ET.fromstring(requests.get(ans).text) 
for x in tree.iter('Batting'): 
    matches = x.find('Matches').text 
    innings = x.find('Innings').text 
    runs = x.find('Runs').text 
    average = x.find('Average').text 
    print("MATCHES:%d\nINNINGS:%d\nRUNS:%d\nAVERAGE%D\n"%(matches,innings,runs,average)) 

xml file details

Когда я запускаю программу, она дает ошибку.

Traceback (most recent call last): 
    File "espn.py", line 9, in <module> 
    matches = x.find('Matches').text 
AttributeError: 'NoneType' object has no attribute 'text' 

Я старался, но я не могу понять, почему мой запрос на поиск возвращает пустой.

ответ

0

От взгляда на консоли YQL; Нет дочерних узлов Batting named Matches.

Похоже, что дочерние узлы Batting - это еще один набор поддеревьев, только что названных с номером от 1-20.

http://i.imgur.com/0byDAX0.jpg?1

Try, чтобы увидеть, если .get(), вместо .text, можно получить атрибут

https://docs.python.org/2/library/xml.etree.elementtree.html#finding-interesting-elements

 Смежные вопросы

  • Нет связанных вопросов^_^