Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从MySQL表中获取并将获取的值呈现为XML_Python_Mysql_Xml - Fatal编程技术网

Python 从MySQL表中获取并将获取的值呈现为XML

Python 从MySQL表中获取并将获取的值呈现为XML,python,mysql,xml,Python,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 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()”,无法获取每个dict行,以便遍历和操作:

        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]

如何将每个结果唯一地添加到列表中?

在这里,您正在一次又一次地修改并将相同的dict添加到结果中:

    result={}
    for row in fetchall:
            result['mysite'] = row['mysite']
            result['mystart'] = row['mystart']
            ..................................
            results.append(result)
在循环内创建字典以解决此问题:

    for row in fetchall:
        result={}
可能重复的