2016-05-07 10 views
0

Ich versuche, einen Webservice zu verwenden und Schleife über die Ergebnismenge. Aus irgendeinem Grunde gibt es nur mir, die das erste Ergebnis wieder in diesem Fall:Schleife über Webservice funktioniert nicht

Gesamtrang: 537316 Level: 1419 Xp: 6407333

Es scheint, und nicht Zyklus durch den Rest zu stoppen der Ergebnisse in der Liste der Liste, die von stat_list von der grab_api Funktion ist.

stat_list ist eine Liste in einer Liste mit Zahlenfolgen im Inneren.

import urllib2 
import re 

def grab_api(): 
stat_list = [] 
response = urllib2.urlopen('http://services.runescape.com/m=hiscore/index_lite.ws?player=taroboxx') 
html = response.read() 
stat_list.append(re.split(r"[,\n]", html)) 
return stat_list 

def check_score(hiscore_html): 
stats = ["Overall", "Attack", "Defence", "Strength", "Constitution", "Ranged", "Prayer", "Magic", "Cooking", "Woodcutting", "Fletching", "Fishing", "Firemaking", "Crafting", "Smithing", "Mining", "Herblore", "Agility", "Thieving", "Slayer", "Farming", "Runecrafting", "Hunter", "Construction", "Summoning", "Dungeoneering", "Divination"] 
hiscore = 0 
stat = 0 
for i in hiscore_html[0]: 
    if hiscore == 0: 
     print stats[stat], 
     print "Rank:", i, 
     stat += 1 
     hiscore += 1 
    elif hiscore == 1: 
     print "Level:", i, 
     hiscore += 1 
    elif hiscore == 2: 
     print "Xp:", i 
     hiscore += 1 
    else: 
     hiscore == 0 

check_score(grab_api()) 

Antwort

0

In Ihrem else Block Sie hiscore == 0 statt hiscore = 0 tun.

+0

opps Ich hatte das tatsächlich dort geändert. Selbst mit dieser Änderung in diesem Codeabschnitt wird nur das Ergebnis für die ersten drei Interaktionen erzeugt. Ich hatte es als: für i in hiscore_html [0] –

+0

Siehe meine aktualisierte Antwort. – DeepSpace

+0

Danke, du bist ein Genie –

0

Als eine Ausgabe der ersten Funktion erhalten Sie eine Liste von Listen, so dass es keine Iteration innerhalb der Liste Sie wollen: Sie gehen zu einer Liste (hiscore_html), und im Inneren finden Sie eine weitere Liste, die das einzige Element ist von hiscore_html.

Um dies zu vermeiden, können Sie auf das erste Element von hiscore_html verweisen. Aber ich habe gerade dein Update gesehen - es ist genau das, was du machst, und der andere Fehler wurde unten behoben.

Verwandte Themen