My a.csv is:
001,哈哈大学
002,拉拉大学
003,啊啊啊大学
004,文网文大学
005,卡卡卡大学
006,请求权大学
007,凤飞飞大学
And my str_loader.py is:
class College(db.Model):
cid = db.StringProperty(required=True)
name = db.StringProperty(required=True)
class CollegeLoader(bulkloader.Loader):
def __init__(self):
bulkloader.Loader.__init__(self, 'College',
[
('cid', str),
('name', lambda x: unicode(x, 'utf8')),
])
loaders = [CollegeLoader]
And I use this code to update data to localhost server:
appcfg.py upload_data --application=zjm1126 --config_file=upload/str_loader.py --filename=upload/a.csv --kind=College --url=http://localhost:8100/remote_api
I want to test download data to b.csv that like a.csv format,
So do this:
appcfg.py download_data --application=zjm1126 --kind=College --url=http://localhost:8100/remote_api --filename=b.csv
How to download data to b.csv
that like a.csv
format.
I have added this to str_loader.py
:
class CollegeExporter2(bulkloader.Exporter):
def __init__(self):
bulkloader.Exporter.__init__(self, 'College',
[
('cid', str),
('name', lambda x: unicode(x, 'utf8')),
])
exporters = [CollegeExporter2]
I use this code to run:
appcfg.py download_data --config_file=upload/str_loader.py --application=zjm1126 --kind=College --url=http://localhost:8100/remote_api --filename=b.csv
But, it show error:
D:\zjm_demo\app>appcfg.py download_data --config_file=upload/str_loader.py --app
lication=zjm1126 --kind=College --url=http://localhost:8100/remote_api --filena
me=b.csv
Downloading data records.
[INFO ] Logging to bulkloader-log-20100619.120030
[INFO ] Throttling transfers:
[INFO ] Bandwidth: 250000 bytes/second
[INFO ] HTTP connections: 8/second
[INFO ] Entities inserted/fetched/modified: 20/second
[INFO ] Batch Size: 10
Traceback (most recent call last):
File "d:\Program Files\Google\google_appengine\appcfg.py", line 68, in <module
>
run_file(__file__, globals())
File "d:\Program Files\Google\google_appengine\appcfg.py", line 64, in run_fil
e
execfile(script_path, globals_)
File "d:\Program Files\Google\google_appengine\google\appengine\tools\appcfg.p
y", line 2757, in <module>
main(sys.argv)
File "d:\Program Files\Google\google_appengine\google\appengine\tools\appcfg.p
y", line 2748, in main
result = AppCfgApp(argv).Run()
Fi开发者_运维百科le "d:\Program Files\Google\google_appengine\google\appengine\tools\appcfg.p
y", line 1763, in Run
self.action(self)
File "d:\Program Files\Google\google_appengine\google\appengine\tools\appcfg.p
y", line 2619, in __call__
return method()
File "d:\Program Files\Google\google_appengine\google\appengine\tools\appcfg.p
y", line 2451, in PerformDownload
run_fn(args)
File "d:\Program Files\Google\google_appengine\google\appengine\tools\appcfg.p
y", line 2368, in RunBulkloader
sys.exit(bulkloader.Run(arg_dict))
File "d:\Program Files\Google\google_appengine\google\appengine\tools\bulkload
er.py", line 4014, in Run
return _PerformBulkload(arg_dict)
File "d:\Program Files\Google\google_appengine\google\appengine\tools\bulkload
er.py", line 3837, in _PerformBulkload
LoadConfig(config_file)
File "d:\Program Files\Google\google_appengine\google\appengine\tools\bulkload
er.py", line 3553, in LoadConfig
Exporter.RegisterExporter(cls())
File "upload/str_loader.py", line 57, in __init__
('name', lambda x: unicode(x, 'utf8')),
File "d:\Program Files\Google\google_appengine\google\appengine\tools\bulkload
er.py", line 2786, in __init__
for name, fn, default in properties:
ValueError: need more than 2 values to unpack
And when I run:
print repr(open('b.csv', 'rb').read())'
I am getting:
'SQLite format 3\x00\x04\x00\x01\x01\x00@ \x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\r\x03\xfc\x00\x03\x02\xd5\x00\x03f\x03\xcf\x02\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x0e\x03\x07\x17GG\x01\x81\x1btablebulkloader_database_signaturebulkloader_database_signature\x04CREATE TABLE bulkloader_database_signature (\n value TEXT not null)g\x01\x07\x17\x19\x19\x01\x81)tableresultresult\x02CREATE TABLE result (\nid BLOB primary key,\nvalue BLOB not null,\nsort_key BLOB)+\x02\x06\x17?\x19\x01\x00indexsqlite_autoindex_result_1result\x03\x00\x00\x00\x04\r\x00\x00\x00\x07\x00\x94\x00\x03\x85\x03\n\x02\x8c\x02\x0e\x01\x90\x01\x12\x00\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00|\x07\x05H\x81>\r:College\x00\x0000000000000000000742j\x19j\x07zjm1126r\x0e\x0b\x12\x07College\x18\xe6\x05\x0cr\x0e\x1a\x03cid \x00*\x05\x1a\x03007r\x1b\x1a\x04name \x00*\x11\x1a\x0f\xe5\x87\xa4\xe9\xa3\x9e\xe9\xa3\x9e\xe5\xa4\xa7\xe5\xad\xa6\x82\x01\x0e\x0b\x12\x07College\x18\xe6\x05\x0c|\x06\x05H\x81>\r:College\x00\x0000000000000000000741j\x19j\x07zjm1126r\x0e\x0b\x12\x07College\x18\xe5\x05\x0cr\x0e\x1a\x03cid \x00*\x05\x1a\x03006r\x1b\x1a\x04name \x00*\x11\x1a\x0f\xe8\xaf\xb7\xe6\xb1\x82\xe6\x9d\x83\xe5\xa4\xa7\xe5\xad\xa6\x82\x01\x0e\x0b\x12\x07College\x18\xe5\x05\x0c|\x05\x05H\x81>\r:College\x00\x0000000000000000000740j\x19j\x07zjm1126r\x0e\x0b\x12\x07College\x18\xe4\x05\x0cr\x0e\x1a\x03cid \x00*\x05\x1a\x03005r\x1b\x1a\x04name \x00*\x11\x1a\x0f\xe5\x8d\xa1\xe5\x8d\xa1\xe5\x8d\xa1\xe5\xa4\xa7\xe5\xad\xa6\x82\x01\x0e\x0b\x12\x07College\x18\xe4\x05\x0c|\x04\x05H\x81>\r:College\x00\x0000000000000000000739j\x19j\x07zjm1126r\x0e\x0b\x12\x07College\x18\xe3\x05\x0cr\x0e\x1a\x03cid \x00*\x05\x1a\x03004r\x1b\x1a\x04name \x00*\x11\x1a\x0f\xe6\x96\x87\xe7\xbd\x91\xe6\x96\x87\xe5\xa4\xa7\xe5\xad\xa6\x82\x01\x0e\x0b\x12\x07College\x18\xe3\x05\x0c|\x03\x05H\x81>\r:College\x00\x0000000000000000000738j\x19j\x07zjm1126r\x0e\x0b\x12\x07College\x18\xe2\x05\x0cr\x0e\x1a\x03cid \x00*\x05\x1a\x03003r\x1b\x1a\x04name \x00*\x11\x1a\x0f\xe5\x95\x8a\xe5\x95\x8a\xe5\x95\x8a\xe5\xa4\xa7\xe5\xad\xa6\x82\x01\x0e\x0b\x12\x07College\x18\xe2\x05\x0cy\x02\x05H\x818\r:College\x00\x0000000000000000000737j\x19j\x07zjm1126r\x0e\x0b\x12\x07College\x18\xe1\x05\x0cr\x0e\x1a\x03cid \x00*\x05\x1a\x03002r\x18\x1a\x04name \x00*\x0e\x1a\x0c\xe6\x8b\x89\xe6\x8b\x89\xe5\xa4\xa7\xe5\xad\xa6\x82\x01\x0e\x0b\x12\x07College\x18\xe1\x05\x0cy\x01\x05H\x818\r:College\x00\x0000000000000000000736j\x19j\x07zjm1126r\x0e\x0b\x12\x07College\x18\xe0\x05\x0cr\x0e\x1a\x03cid \x00*\x05\x1a\x03001r\x18\x1a\x04name \x00*\x0e\x1a\x0c\xe5\x93\x88\xe5\x93\x88\xe5\xa4\xa7\xe5\xad\xa6\x82\x01\x0e\x0b\x12\x07College\x18\xe0\x05\x0c\n\x00\x00\x00\x07\x03\x0b\x00\x03\xdd\x03\xba\x03\x97\x03t\x03Q\x03.\x03\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"\x03H\x01:College\x00\x0000000000000000000742\x07"\x03H\x01:College\x00\x0000000000000000000741\x06"\x03H\x01:College\x00\x0000000000000000000740\x05"\x03H\x01:College\x00\x0000000000000000000739\x04"\x03H\x01:College\x00\x0000000000000000000738\x03"\x03H\x01:College\x00\x0000000000000000000737\x02"\x03H\x01:College\x00\x0000000000000000000736\x01\r\x00\x00\x00\x01\x03!\x00\x03!\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\\\x01\x03\x83?\n app_id: zjm1126\n url: http://localhost:8100/remote_api\n kind: College\n download: False\n map: False\n dump: True\n restore: False\n progress_db: bulkloader-progress-20100619.121020.sql3\n has_header: False\n \n '
class CollegeExporter2(bulkloader.Exporter):
def __init__(self):
bulkloader.Exporter.__init__(self, 'College',
[
('cid', str,None),
('name', lambda x:x.encode('utf8'),None),
],)
exporters = [CollegeExporter2]
As per http://appengine-cookbook.appspot.com/recipe/using-the-python-bulk-exporter-tool-with-a-java-application/ , first add the following to your str_loader.py:
class CollegeExporter(bulkloader.Exporter):
def __init__(self):
bulkloader.Exporter.__init__(self, 'College',
[
('cid', str, None),
('name', lambda x: unicode(x, 'utf8'), None),
])
exporters = [CollegeExporter]
Next, run:
appcfg.py update zjm1126
appcfg.py download_data --config_file=upload/str_loader.py --application=zjm1126 --kind=College --url=http://localhost:8100/remote_api --filename=b.csv
Of course you probably ultimately want to create a separate file for download vs. upload, but you get the idea.
I strongly suggest that you dump the contents of b.csv by issuing the following command at your shell prompt
python -c"print repr(open('b.csv', 'rb').read())"
That way we can see what is actually in the file.
HOWEVER It looks very much like an SQLite3 database -- perhaps you need to explore what options the appcfg.py script has for choosing an output file format.
by loading the data into an sqlite db and then dumping that via the python csv module.
精彩评论