使用谷歌应用引擎创建一个大的.csv(或任何其他类型!)文件

时间:2013-12-04 10:04:47

标签: python google-app-engine

我一直在努力用GAE创建一个文件两天了,我已经研究了不同的方法,每个方法看起来比前一个方法更复杂,更耗时。

我尝试过简单地加载页面并将文件写入带有相关标题的响应对象:

self.response.headers['Content-Disposition'] = "attachment; filename=titles.csv"
q = MyObject.all()
for obj in q:
    title = json.loads(obj.data).get('title')
    self.response.out.write(title.encode('utf8')+"\n")

这告诉我(在一个很长的错误中)Full proto too large to save, cleared variables.这是full error

我还检查了云端存储,但它需要大量信息并在云端控制台中进行调整才能启用,而Blobstorage只能将内容保存到DataStore中。

写一个文件不能这么复杂!请告诉我,我遗失了一些东西。

1 个答案:

答案 0 :(得分:1)

该错误与编写CSV无关,但在迭代所有MyObject实体时似乎是超时。请记住,GAE中的请求受到严格限制,您可能会超过这些限制。您可能希望使用游标和延迟API分阶段构建CSV。但为此,你肯定需要写入blobstore或CS。