我的CSV文件生成的结果包含逗号,方括号

我正在生成一个包含预期结果的csv,所有数字都是正确的。

但是,从表达的角度来看,它包含所有内容的括号和逗号等。

有没有办法删除这些内容?

我尝试添加逗号作为分隔符,但这并不能解决问题。

示例输出:

  

确定:('Egg',)

results = [] 
results1 = []
results2 = []
results3 = []
results4 = []
results5 = []
results6 = []

cur.execute(dbQuery)

results.extend(cur.fetchall())

cur.execute(dbQuery1)

results1.extend(cur.fetchall())

cur.execute(dbQuery2)

results2.extend(cur.fetchall())

cur.execute(dbQuery3)

results3.extend(cur.fetchall())

cur.execute(dbQuery4)

results4.extend(cur.fetchall())

cur.execute(dbQuery5)

results5.extend(cur.fetchall())

cur.execute(dbQuery6)

results6.extend(cur.fetchall())


with open("Stats.csv","wb") as csv_file:
    csv_writer = csv.writer(csv_file)
    csv_writer.writerow(['Query1','Query2','Query3','Query4','Query5','Query6','Query7'])
    csv_writer.writerows(zip(*[results,results1,results2,results3,results4,results5,results6]))
chenxiaodan19881018 回答:我的CSV文件生成的结果包含逗号,方括号

zip函数返回一个元组列表[[x,y),(t,s)...]

writerows方法需要一个列表列表。因此,我认为您应在调用zip之前格式化writerows返回值。这样的事情应该起作用:

result = zip(results,results1,results2,results3,results4,results5,results6)
csv_writer.writerows([list(row) for row in result])

编辑:

我想我了解您在这里遇到的问题(因此,请忽略我之前的回答)。

fetchall函数返回一个像[(x,),(y,)]这样的元组列表

因此,您的resultsX变量将采用这种格式。然后,您将在这些列表之间应用邮政编码(请参阅here zip的作用)。

例如,如果我们有 results = [(x,)] results1 = [(t,(z,)]

运行zip(results,results1)时,它将返回: [((x,(t,)),((y,))]

因此,这就是您传递给writerows的列表的格式,这意味着第一行将是:((x,)),其中元素one是:(x,),第二行是是(t,)

因此,不确定要使用zip函数在CSV中写入什么内容。但是,您得到的结果是因为要在csv中编写的元素是元组而不是值。

我不知道您在这里执行的查询,但是如果每个结果只期望一个字段,那么可能需要删除每个resultsX变量中的元组。您可以在此线程中查看操作方法:https://stackoverflow.com/a/12867429/1130381

我希望它能对您有所帮助,但这是我所能提供的最好信息。

本文链接:https://www.f2er.com/3152930.html

大家都在问