2016-03-22 6 views
0

私はPythonでURLを入力するプロンプトを表示し、urllibを使用してそのURLからXMLデータを読み取り、解析してXMLデータからコメントカウントを抽出し、ファイル内の数値の合計を計算します。ここでは、コードは次のとおりです。ここでXMLファイルからのデータの抽出:countとsumはゼロです

import urllib 
import xml.etree.ElementTree as ET 

serviceurl = 'http://maps.googleapis.com/maps/api/geocode/xml?' 
sum = 0 

while True:  
    address = raw_input('Enter location: ') 
    if len(address) < 1 : break 

    url = serviceurl + urllib.urlencode({'sensor':'false', 'address': address}) 
    print 'Retrieving', url 
    uh = urllib.urlopen(url) 
    data = uh.read() 
    print 'Retrieved',len(data),'characters' 
    print data 
    tree = ET.fromstring(data) 

    lst = tree.findall('comments/comment') 
    print lst 
    print 'Count: ', len(lst) 

    for item in lst: 
     num = int(item.find('count').text) 
     sum = sum + num 

    print sum 

が出力されます。リストが空である理由

Enter location: http://python-data.dr-chuck.net/comments_42.xml 
Retrieving http://maps.googleapis.com/maps/api/geocode/xml?sensor=false&address=http%3A%2F%2Fpython-data.dr-chuck.net%2Fcomments_42.xml 
Retrieved 107 characters 
<?xml version="1.0" encoding="UTF-8"?> 
<GeocodeResponse> 
<status>ZERO_RESULTS</status> 
</GeocodeResponse> 

[] 
Count: 0 
0 

私はゼロの数との和につながる、理解していません。誰にもアドバイスはありますか?

+0

私は同じ場所にこだわっています。あなたは今までに答えを得たのですか、それともまだ苦労していますか?はいの場合は、コードを入力してください。 –

答えて

0

あなたはthisをダウンロードしていますが、コメントスニペットはありません。リストが見つからないため空です。 を試してみてください:

url = urllib.urlencode({'sensor':'false', 'address': address}) 

代わりにテストしてください。 基本的には、入力したURLに問題があります。

関連する問題