gpt4 book ai didi

python - 一次性将大量数据导入 Google App Engine 数据存储

转载 作者:太空宇宙 更新时间:2023-11-03 15:28:27 26 4
gpt4 key购买 nike

我有一个很大的 CSV 文件,大小大约为 10 MB,其中包含需要导入到 Google App Engine DataStore 中的所有数据。我尝试了以下方法来执行导入,但总是半途而废。

  • 使用将命令映射到 url 然后执行 url 进行导入,由于请求超时而失败...
  • 使用创建 cron 作业导入,但出现 DeadlineExceededError...
  • 使用 remort_api_shell 导入,但操作超时。

你能否建议我和方法(使用你可以想象的虚拟数据)如何去做...建议代码会更有帮助..

** 我正在使用 Python 和谷歌的网络应用程序框架来开发上述应用程序。

最佳答案

您可以逐行发布。使用内置的批量加载器。

http://code.google.com/appengine/docs/python/tools/uploadingdata.html

这是一篇好文章。

这是我 2 年前用作引用的 contactloader.py。自从我上次使用以来它更加复杂,但仍然......

import datetime
from google.appengine.ext import db
from google.appengine.tools import bulkloader

class Contact(db.Model):

date = db.DateTimeProperty(auto_now_add=True)

owner = db.StringProperty()

companyname = db.StringProperty()

companyemail = db.EmailProperty()

def myfunc(x):
temp = x.split(":mailto:")
if len(temp) > 0:
temp = temp[-1].split(":")
else:
return "defaultvalue"
if len(temp) > 0:
temp = temp[0]
else:
return "defaultvalue"
temp = temp.split("<1>")[0]
if temp is None or len(temp) < 5:
return "defaultvalue"
return temp

def mysecfunc(x):
return x.split("<0>")[0]

class ContactLoader(bulkloader.Loader):
def __init__(self):
bulkloader.Loader.__init__(self, 'Contact',
[
('companyname',mysecfunc),
('owner', lambda x:"somevalue"),
('companyemail',myfunc),
("date",lambda x:datetime.datetime.now()),
])

loaders = [ContactLoader]

关于python - 一次性将大量数据导入 Google App Engine 数据存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3218220/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com