我正在尝试使用以下加载器类从bulkloader
生成的 CSV 导入数据:
import datetime
from google.appengine.ext import db
from google.appengine.tools import bulkloader
from market import Market
class MarketLoader(bulkloader.Loader):
def __init__(self):
bulkloader.Loader.__init__(
self, 'Market',
[('url', str),
('market_name', lambda x: x.decode('utf-8')),
('parent_market_name', lambda x: x.decode('utf-8')),
('last_modified',
lambda x: dateutil.datetime.strptime(
x, '%Y-%m-%dT%H:%M:%S').date()),
('key',str),
('timestamp',
lambda x: datetime.datetime.strptime(
x, '%Y-%m-%dT%H:%M:%S').date())
])
loaders = [MarketLoader]
CSV 数据:
url,market_name,parent_market_name,last_modified,key,timestamp somedata,moredata,yadata,2013-09-14T03:34:22,123143244,2013-09-14T03:34:22
调整属性格式化程序或完全忽略它们并不能防止收到此错误:
02:22 PM 应用程序:s~myapp 02:22 PM 上传数据记录。[INFO] 记录到 bulkloader-log-20131005.142241 [INFO
] 限制传输:[INFO] 带宽:250000 字节/秒 [INFO] HTTP 连接:8/秒 [INFO] 插入/获取/修改的实体:20/秒 [INFO]批量大小:10 回溯(最近一次调用最后):文件“/home/azureuser/google_appengine/appcfg.py”,第 184 行,在 run_file(文件, globals()) 文件“/home/azureuser/google_appengine/appcfg.py”,第 180 行,在 run_file execfile(script_path, globals_) 文件“/home/myuser/google_appengine/google/appengine/tools/appcfg.py”中,第 4403 行,在 main(sys.argv) 文件“/home/myuser/google_appengine/google/appengine/tools/appcfg.py”中,第 4394 行,在主要结果中 = AppCfgApp(argv).Run() 文件“/home/ azureuser/google_appengine/google/appengine/tools/appcfg.py”,第 2469 行,在运行 self.action(self) 文件“/home/azureuser/google_appengine/google/appengine/tools/appcfg.py”,第 4103 行,在称呼 返回方法()文件“/home/azureuser/google_appengine/google/appengine/tools/appcfg.py”,第 3915 行,在 PerformUpload run_fn(args) 文件“/home/azureuser/google_appengine/google/appengine/tools/appcfg. py",第 3806 行,在 RunBulkloader sys.exit(bulkloader.Run(arg_dict)) 文件中 "/home/azureuser/google_appengine/google/appengine/tools/bulkloader.py",第 4419 行,在运行中返回 _PerformBulkload(arg_dict) 文件“/home/azureuser/google_appengine/google/appengine/tools/bulkloader.py”,第 4230 行,_PerformBulkload LoadConfig(config_file) 文件“/home/azureuser/google_appengine/google/appengine/tools/bulkloader.py”,第 3897 行,在 LoadConfig Loader.RegisterLoader(cls()) 文件“/home/azureuser/gaeccscrm/Market_loader.py”,第 19 行,在初始化 lambda x:datetime.datetime.strptime(文件“/home/azureuser/google_appengine/google/appengine/tools/bulkloader.py”,第 2698 行,在init GetImplementationClass(种类)文件“/home/azureuser/google_appengine/google/appengine /tools/bulkloader.py”,第 968 行,在 GetImplementationClass implementation_class = db.class_for_kind(kind_or_class_key) 文件“/home/azureuser/google_appengine/google/appengine/ext/db/ init .py”,第 296 行,在 class_for_kind 中引发 KindError ('没有实现种类 \'%s\'' % kind) google.appengine.ext.db.KindError: 没有实现种类 'Market'
堆栈跟踪总是提到最后一个格式化程序,无论哪个被设置为最后一个。