2012-05-07 20 views
0

我取的成績列從表中查詢:從MySQL表抓取並呈現讀取值作爲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 

現在我需要處理結果集生成:

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

這樣的數據將保持從查詢中獲取的所有行,我可以從中提取每個列值?不知何故,我沒有得到想要的結果。我的要求是通過DB查詢獲取結果集並將結果存儲到佔位符中,以便稍後可以在其他方法或位置輕鬆訪問它。

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

我嘗試了下面的技術,但仍然在方法'getXML( )」我無法讓每個字典行,這樣我可以遍歷和操縱:

 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[??] 

那麼,如何讓每個chartData行的值,然後我可以在每次循環?

注意:我發現只有最後一行獲取的值纔像chartData那樣打印出來。假設我知道查詢返回了2行。因此,在情況下,我打印的getXML列表()方法,如下面兩行相同:

chartData[0] 
chartData[1] 

如何我唯一每個結果添加到列表中?

+0

HTTP的可能重複: //stackoverflow.com/questions/1092242/how-to-create-an-xml-file-from-mysql-data-queries – thavan

回答

0

這裏要修改,並一遍又一遍地將同一字典到的結果:

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

創建字典內循環來解決這個問題:

for row in fetchall: 
     result={}