2010-06-19 2 views
2

mon .csv contenant est:comment télécharger des données à b.csv que, comme le format .csv contenant du serveur Gae localhost

001,哈哈大学 
002,拉拉大学 
003,啊啊啊大学 
004,文网文大学 
005,卡卡卡大学 
006,请求权大学 
007,凤飞飞大学 

et mon str_loader.py est:

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] 

et i utiliser ce code pour mettre à jour les données vers le serveur localhost:

appcfg.py upload_data --application=zjm1126 --config_file=upload/str_loader.py --filename=upload/a.csv --kind=College --url=http://localhost:8100/remote_api 

l'affichage des données est:

alt text http://omploader.org/vNG9paA

et la suivante, je veux tester des données de téléchargement à b.csv que, comme le format .csv contenant,

donc faire ceci:

appcfg.py download_data --application=zjm1126 --kind=College --url=http://localhost:8100/remote_api --filename=b.csv 

mais le spectacle de cette b.csv :

alt text http://omploader.org/vNG9pag

est en lecture en mesure pas, donc ma question est:

comment télécharger des données à b.csv qui aiment un format.csv.

grâce

mis à jour

i ajouter ceci à 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] 

et utiliser ce code à exécuter:

appcfg.py download_data --config_file=upload/str_loader.py --application=zjm1126 --kind=College --url=http://localhost:8100/remote_api --filename=b.csv 

mais il montre l'erreur :

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() 
    File "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 

et, ce spectacle '('read()). B.csv de '' rb quand je utilisateur open()' print repr':

'SQLite format 3\x00\x04\x00\x01\x01\[email protected] \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 ' 

updated2

il est correct maintenant:

class CollegeExporter2(bulkloader.Exporter): 
    def __init__(self): 
     bulkloader.Exporter.__init__(self, 'College', 
            [ 
            ('cid', str,None), 
            ('name', lambda x:x.encode('utf8'),None), 
            ],) 
exporters = [CollegeExporter2] 

Répondre

1

Comme par http://appengine-cookbook.appspot.com/recipe/using-the-python-bulk-exporter-tool-with-a-java-application/, ajoutez d'abord ce qui suit à votre 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] 

Ensuite, exécutez:

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 

Bien sûr, vous voudrez probablement en fin de compte pour créer un fichier séparé pour le téléchargement vs télécharger, mais vous avez l'idée.

+0

salut gilesc, regarde la mise à jour .. – zjm1126

+0

Argh! Il semble que les tuples de bulkloader.Exporter .__ init__ nécessitent un troisième argument (par défaut). Essayez le code légèrement modifié ci-dessus ... – gilesc

-2

en chargeant les données dans une base de données sqlite puis de les décharger via le module csv de python.

+0

-1 On dirait qu'il a déjà une base de données SQLite3, * ET * le module csv Python ne lit pas les bases de données SQLite3! –

+0

ne soyez pas ridicule, bien sûr, il y a une étape dans la lecture des données et l'écriture au format CSV, mais c'est moins de 10 lignes de code. Je ne le fais pas pour lui, juste en soulignant que ce n'est pas difficile. Je décharge des bases de données au format CSV tout le temps. – SpliFF

+4

Si vous pouvez écrire quelque chose qui peut jeter _this_ sqlite DB à CSV significatif dans 10 lignes de code, je serai étonné. La base de données dont il dispose est un vidage de données de sa banque de données App Engine, stocké dans un format de tampon de protocole codé. La meilleure option est de faire ce que gilesc démontre, et d'utiliser réellement le dumper CSV intégré. –

0

Je suggère fortement que vous vider le contenu de b.csv en exécutant la commande suivante à votre invite du shell

python -c"print repr(open('b.csv', 'rb').read())" 

De cette façon, nous pouvons voir ce qui est réellement dans le fichier. CEPENDANT Il ressemble beaucoup à une base de données SQLite3 - peut-être avez-vous besoin d'explorer les options du script appcfg.py pour choisir un format de fichier de sortie.

+0

Salut John, regarde la mise à jour .. – zjm1126

Questions connexes