【问题标题】:Result of my CSV file generated contains comma's, brackets我生成的 CSV 文件的结果包含逗号、括号
【发布时间】:2020-03-02 20:01:44
【问题描述】:

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

但是,在演示方面,它包含所有内容的括号和逗号等。

有什么办法可以去掉这些吗?

我尝试添加逗号作为分隔符,但没有解决。

示例输出:

当然:('鸡蛋',)

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]))

【问题讨论】:

  • 你能添加你得到的输出和你想要的输出的例子吗?
  • 所以代码不写头Query1,Query2,ecc?另外,您是否意识到 zip(*[A, B, C]) 只是 zip(A, B, C) 有额外的步骤? * 的重点是解压一个你不知道像 zip(*some_iterable) 这样的元素数量的可迭代对象。在你的情况下,你只是在添加语法。

标签: python csv


【解决方案1】:

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

writerows 方法需要一个列表列表。所以,我认为你应该在调用writerows 之前格式化zip 返回。类似的东西应该可以工作:

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

编辑:

我想我理解您在这里遇到的问题(所以请忽略我之前的回答)。

fetchall 函数返回一个元组列表,例如 [(x,), (y,)]

那么,您的resultsX 变量将具有这种格式。然后,您将在这些列表之间应用 zip(请参阅 here zip 做了什么)。

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

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

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

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

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

我希望它有所帮助,但这是我能用你提供的信息做的最好的事情。

【讨论】:

  • 嗨,当我使用它时,它仍然会输出逗号等
  • 您能否向我们提供下一个信息: - 结果列表之一的内容示例。 - 在 CSV 上写入的当前行示例。 - CSV 中预期行写入的示例。谢谢
  • 当然,这里有一个例子:('Goose',)
  • 这是个什么例子?我要了 3 个不同的例子,所以请你给我更准确的信息。另外,这是('Goose', ) 元组在列表中吗?还是 CSV 上的输出?
  • 这是从我的 SQL 查询中提取的元组之一,它以这种方式显示在 CSV 中。所以在数据库中它看起来像“Goose”,它看起来像 CSV 文件中的 ('Goose',),我希望 CSV 显示它像没有引号的 Goose 等
猜你喜欢
  • 2019-08-30
  • 2016-12-14
  • 1970-01-01
  • 1970-01-01
  • 2023-02-21
  • 1970-01-01
  • 2010-09-27
  • 2016-12-05
  • 1970-01-01
相关资源
最近更新 更多