2010-05-19 2 views
0

Я использую remote_api для загрузки данных из Google-приложения.Как отформатировать дату при загрузке данных из Google-приложения-движка

appcfg.py download_data --config_file=helloworld/GreetingLoad.py --filename=a.csv --kind=Greeting helloworld 

настройка:

class AlbumExporter(bulkloader.Exporter): 
    def __init__(self): 
     bulkloader.Exporter.__init__(self, 'Greeting', 
            [('author', str, None), 
             ('content', str, None), 
             ('date', str, None), 
            ]) 

exporters = [AlbumExporter] 

и загрузить a.csv является:

alt text http://omploader.org/vNGN5dg

дата не читается,

и дата в appspot .com admin:

alt text http://omploader.org/vNGN5dw

, как получить полную дату?

Я изменил это:

class AlbumExporter(bulkloader.Exporter): 
    def __init__(self): 
     bulkloader.Exporter.__init__(self, 'Greeting', 
            [('author', str, None), 
             ('content', str, None), 
             ('date', lambda x: datetime.datetime.strptime(x, '%m/%d/%Y').date(), None), 
            ]) 

exporters = [AlbumExporter] 

но ошибка:

alt text http://omploader.org/vNGN5eA

обновленный

это нормально в настоящее время:

('date', lambda x: datetime.datetime.strftime(x, '%m/%d/%Y'), None), 

ответ

1

Похоже, вы получаете усечение в пространстве в третьей колонке, когда вы говорите

('date', str, None), 

(другая попытка явно не так, потому что вы получаете datetime и вы не можете strptimeчто! -). Если вы хотите дату в виде строки, попробуйте:

('date', lambda dt: str(dt.date()), None), 

или изменение strptime к strftime в вашей второй попытки. Мнемоника: f в strftime означает f ormat: взять дату и время, отформатировать его до строки; p в strptime означает p задницу: возьмите строку и сделайте из нее datetime. Они являются старыми именами, поступающими из стандартной библиотеки для ANSI C (и даже более ранних влияний на нее) ...

Смежные вопросы