我已经查看了其他问题,但他们似乎都指出没有关闭文件,这应该不是我的函数的情况。我有一个pymongo游标,可以检索多行。当它很小(大约10,000)时没有问题,它需要适当的字段并将它们写出来。当我进行完整查询(几百万行)时,它正确完成(没有错误),文件大约是2.1 GB但是我无法在我的CSV编辑器,Excel或Notepad ++中打开它,要么它们什么都不做,要么说文件是空。这是我的代码:
def write_csv(curs, filename):
with open(filename, 'wb') as csv_file:
writer = DictWriter(csv_file, fieldnames=columns, delimiter=';')
writer.writeheader()
for row in curs:
writer.writerow(row)
我将pymongo游标传递给这个文件:
results = wtebt_collection.find(query,projection=proj)
write_csv(results, 'my_file.csv')
有人可以解释一下为什么这不起作用吗?此外,如果有更好的方法来做到这一点,请告诉我。这是两个查询中较小的一个。