我想将查询结果写入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()
答案 0 :(得分:1)
在您尝试的代码中outcsv.writerows
期望编写一组元组。您编写的查询查询模型,它返回该模型的实例。此外,您将每行单独传递到writerows
,但由于名称中的复数表示您应该传递所有行。查询模型的表,并将结果直接传递给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)