2012-05-07 1 views
0

Je Récupérer des résultats sur une requête d'une table:extraire et afficher les valeurs extraites de tables MySQL comme XML

def getdata() 
    self.cursor.execute("....") 
    fetchall = self.cursor.fetchall() 
    result ={} 
    for row in fetchall: 
     detail1 = row['mysite'] 
     details2 = row['url'] 
     result[detail1] = row 
    return result 

Maintenant je dois traiter le jeu de résultats généré:

def genXML() 
    data = getdata() 
    doc = Document() ""create XML tree structure""" 

De telle sorte que les données contiendraient toutes les lignes extraites de la requête et que je pourrais en extraire les valeurs de chaque colonne? D'une manière ou d'une autre, je ne reçois pas le résultat désiré. Mon exigence est de récupérer l'ensemble de résultats via une requête DB et de stocker le résultat dans un espace réservé de sorte que je puisse facilement y accéder plus tard dans d'autres méthodes ou emplacements?

============================================== ===================================

J'ai essayé la technique ci-dessous mais toujours dans la méthode 'getXML () » Je suis incapable d'obtenir chaque ligne de dict afin que je puisse parcourir et manipuler:

 fetchall = self.cursor.fetchall() 
     results= [] 
     result={} 
     for row in fetchall: 
       result['mysite'] = row['mysite'] 
       result['mystart'] = row['mystart'] 
       .................................. 
       results.append(result) 
     return results 

def getXML(self): 
     doc = Document() 
     charts = doc.createElement("charts") 
     doc.appendChild(charts) 
     chartData = self.grabChartData() 
     for site in chartData: 
       print site[??] 

alors, comment puis-je obtenir chaque valeur de ligne ChartData et je peux boucle pour chacun?

Remarque: J'ai trouvé que seules les valeurs récupérées sur la dernière ligne sont imprimées comme dans chartData. Dites que je sais que 2 lignes sont retournées par la requête. Par conséquent, en cas imprimer la liste dans la méthode getXML() comme ci-dessous les deux lignes sont les mêmes:

chartData[0] 
chartData[1] 

Comment puis-je ajouter de manière unique chaque résultat à la liste?

+0

double possible de http: //stackoverflow.com/questions/1092242/how-to-create-an-xml-file-from-mysql-data-queries – thavan

Répondre

0

Ici, vous modifiez et en ajoutant même dict aux résultats encore et encore:

result={} 
    for row in fetchall: 
      result['mysite'] = row['mysite'] 
      result['mystart'] = row['mystart'] 
      .................................. 
      results.append(result) 

Créer le dictionnaire dans la boucle pour résoudre ceci:

for row in fetchall: 
     result={} 
Questions connexes