2017-05-13 4 views
-1

Je dois faire un appel API pour chaque élément d'une liste où le filtre (nom) est l'élément de la liste. J'ai essayé quelque chose comme le ci-dessous mais je reçois:python pour la chaîne de concaténation en boucle

list = [a, b, c] 

for name in list: 
    url = urllib2.urlopen("http://apicall" + name) 

où nom est chaque élément de la liste.

J'utilisé:

for name in list: 
    print name + name 

pour tester et recevoir:

name 'a' is not defined 
+0

J'ai d'abord répondu à votre question. Ne pensez-vous pas avoir accepté d'autres utilisateurs? – FallAndLearn

+0

Merci! Apprécié. – FallAndLearn

+0

Je ne sais pas ce qui s'est passé. Je t'ai d'abord accepté parce que tu étais le premier. Je l'ai changé en arrière. Merci de me le faire savoir. – Rthomas529

Répondre

1

erreur que vous obtenez est correcte. Vous devez initialiser votre liste comme ci-dessous.

changement list = [a, b, c]-list = ['a', 'b', 'c']

Vous devez avoir une liste de valeurs au lieu des variables. Le compilateur recherche la variable "a" qui n'est pas définie, ce qui provoque une erreur.

+0

En fait, j'ai juste oublié d'ajouter mes citations. Les éléments de ma liste sont str. J'ai utilisé "type d'impression (serveurs)" pour s'assurer et retourné: Rthomas529

+0

Alors, quelle est l'erreur que vous obtenez maintenant? – FallAndLearn

1

Changer votre première ligne à savoir la déclaration de liste à

list = ["a", "b", "c"] 

Il fonctionnera. Repos tout va bien.

2

Vous obtenez cette erreur car vous avez un list de variables et non values.

list = [a, b, c] recherche les variables a, b, c.

Vous devez ajouter ' ou " autour de chaque list itérable pour les rendre values.

Tels que: list = ['a', 'b', 'c'] ou list = ["a", "b", "c"].

Le choix de ' par rapport à " dépendra des caractères placés entre les guillemets.