Writing query results to CSV causes "_csv.Error: sequence expected"
Writing query results to CSV causes "_csv.Error: sequence expected"
我想将查询结果写入 CSV 文件。我尝试了另一个 SO 问题的解决方案:dump csv from sqlalchemy,但得到了 _csv.Error: sequence expected
。为什么会出现此错误?如何将查询结果正确写入 CSV?
fh = open('data.csv', 'wb')
outcsv = csv.writer(fh)
result = Grant.query.filter(Grant.pi_name==(piname)).all()
for res in result:
outcsv.writerows(res)
fh.close()
在您尝试的代码中 outcsv.writerows
需要编写一组元组。您编写的查询查询 模型 ,该模型的 returns 个实例。此外,您将每一行单独传递给 writerows
,但正如名称中的复数形式表明您应该传递 all 行。改为查询模型的table,并将结果直接传递给writerows
。
entries = db.session.query(Grant.__table__).filter(Grant.pi_name == pi_name)
with open('entries.csv', 'wb') as f:
writer = csv.writer(f)
writer.writerows(entries)
我想将查询结果写入 CSV 文件。我尝试了另一个 SO 问题的解决方案:dump csv from sqlalchemy,但得到了 _csv.Error: sequence expected
。为什么会出现此错误?如何将查询结果正确写入 CSV?
fh = open('data.csv', 'wb')
outcsv = csv.writer(fh)
result = Grant.query.filter(Grant.pi_name==(piname)).all()
for res in result:
outcsv.writerows(res)
fh.close()
在您尝试的代码中 outcsv.writerows
需要编写一组元组。您编写的查询查询 模型 ,该模型的 returns 个实例。此外,您将每一行单独传递给 writerows
,但正如名称中的复数形式表明您应该传递 all 行。改为查询模型的table,并将结果直接传递给writerows
。
entries = db.session.query(Grant.__table__).filter(Grant.pi_name == pi_name)
with open('entries.csv', 'wb') as f:
writer = csv.writer(f)
writer.writerows(entries)