0

テーブルからクエリの結果を取得しています:

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]

各結果をリストに一意に追加するにはどうすればよいですか?

4

1 に答える 1

0

ここでは、同じ dictを何度も変更して結果に追加しています。

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

これを解決するには、ループ内に辞書を作成します。

    for row in fetchall:
        result={}
于 2012-05-07T12:32:10.320 に答える