python - 将数据从 Google App Engine 导出到 csv

标签 python google-app-engine csv

old answer指向 Google App Engine documentation 上的链接,但该链接现在是关于备份您的 GAE 数据,而不是下载它。

那么如何将所有数据下载到一个csv中呢?数据很小,即 < 1 GB

最佳答案

我尝试了几种不同的方法来使用概述的步骤导出到 csv herehere .但我无法工作。所以,这就是我所做的(我最大的表大约是 2GB)。尽管它看起来像很多步骤,但它的工作速度相对较快......比对抗谷歌可能已经连续数小时更改的随机代码要好:

  1. 进入 Cloud Storage 并创建 2 个新存储桶“data_backup”和“data_export”。如果您已经有一个存储桶来存储东西,则可以跳过此步骤。
  2. 进入“我的控制台”> Google Datastore > Admin > 为您尝试转换的数据存储打开 Datastore Admin。
  3. 勾选您要备份的一个或多个实体,然后点击“备份实体”。我一次做一个,因为我只有大约 5 个表要导出,而不是一次检查所有 5 个。
  4. 指明您要将它们存储在的 Google Storage (gs) 存储桶
  5. 现在转到 Google Big Query(我以前从未使用过它,但开始使用它很简单)
  6. 点击向下的小箭头并选择“创建新数据集”并为其命名。
  7. 然后点击您刚刚创建的新数据集旁边的向下箭头并选择“创建新表”。完成导入步骤,在“选择数据”步骤下选择“云数据存储备份”。然后选择要导入到 Big Query 的任何备份,以便在下一步中将其导出到 csv。
  8. 表格导入后(这对我来说非常快),点击表格名称旁边的向下箭头并选择“导出”。您可以直接导出为 csv,也可以保存到您为导出创建的 Google 存储桶,然后从那里下载。

这里有一些提示:

  • 如果您的数据具有嵌套关系,则必须导出为 JSON 而不是 CSV(他们也提供 avro 格式,不管是什么)
  • 我使用 json2csv 转换无法保存为 csv 的导出的 JSON 文件。它在大 table 上运行有点慢,但可以完成。
  • 由于 json2csv 中的 python 内存错误,我不得不将 2GB 的文件拆分为 2 个文件。我使用 gsplit 拆分文件并选中其他属性 > 标签和 header > 不添加 Gsplit 标签下的选项...(这确保 Gsplit 没有向拆分文件添加任何数据)

就像我说的,这实际上非常快,尽管它有很多步骤。希望它能帮助人们避免花费大量时间尝试转换奇怪的备份文件格式或运行可能不再工作的代码。

关于python - 将数据从 Google App Engine 导出到 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33360370/

相关文章:

python - 为什么在使用 next() 时出现 StopIteration 错误?

Python PDFMIner - PDF 到 CSV

python - boost.python C++ 多线程

Python:将 Unicode 转换为 ASCII,对于 CSV 文件没有错误

java - 一次从 zip 文件中读取一行 CSV

python - 在派生自 `object` 的类中调用 super().__init__() ?

java - 在 JPA 中修改查询结果

java - GQL 仅适用于 Python 项目而不适用于 Java?

python - 使用 Python-compact 在 GAE 灵活环境中运行后台线程

excel - 将文本从多个 Excel 文件导出到单个逗号分隔文件