将查询结果写入CSV会导致“_csv.Error:sequence expected”

时间:2015-08-10 14:07:12

标签: python csv sqlalchemy flask-sqlalchemy

我想将查询结果写入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()

1 个答案:

答案 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)