2012-04-27 1 views
-2

Voici un code:lxml - fonction pour retourner l'objet nettoyé, non seulement une chaîne

from lxml import etree 
url = 'http://www.google.com/ig/api?stock=aapl' 
data = etree.parse(url) 
root = data.getroot() 
finance = root[0] 


def clean(var, num): 
    var = str(finance[num].attrib).split("'")[-2] 
    print var 

Je voudrais revenir la variable comme un objet que je peux appeler plus tard.

Je sais ce que le problème est - la str() - mais ne savent pas comment le résoudre en travaillant avec la variable directement ne me permet pas de faire les manipulations nécessaires avec .attrib et .split

+3

« Je voudrais revenir la variable comme un objet que je peux appeler plus tard. » S'il vous plaît expliquer cela en plus de détails. Pourriez-vous donner un exemple de la façon dont vous aimeriez utiliser votre objet? Fournissez un test-type minimal de la manière dont vous souhaitez tirer parti de la solution future. – user1202136

+0

Utilisez 'var = finance [num] .attrib ['data']' - cela clarifie mieux ce que vous faites. –

Répondre

1

en supposant que vous voulez recueillir des informations à partir de XML, faites:

data = dict() 
for elem in finance: 
    data[elem.tag] = elem.attrib['data'] 

vous obtiendrez un dictionnaire data variables comme:

{'symbol': 'AAPL', 'company': 'Apple Inc.', 'currency': 'USD', 'volume': '19145182' ... } 

Et vous serez en mesure d'accéder à des pièces particulières de l'info:

print data['company'] 
+0

merci! c'est une façon beaucoup moins fragile de le faire. – snakesNbronies

Questions connexes