如何在从谷歌应用引擎加载数据时格式化日期?

0 投票
1 回答
990 浏览
提问于 2025-04-15 22:52

我使用 remote_api 从 Google App Engine 加载数据。

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 文件,但日期看起来不太好懂。

我该如何获取完整的日期呢?

我做了这样的更改:

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]

不过,我还是遇到了一个错误。

1 个回答

1

看起来你在第三列的空格处遇到了截断问题,当你这样说的时候:

('date', str, None),

(另一个尝试显然是错误的,因为你得到了一个datetime,而你不能对datetime使用strptime!)。如果你想要把日期作为字符串,可以试试:

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

或者,在你的第二个尝试中把strptime改成strftime。记住:strftime中的f代表格式:把一个日期时间格式化成字符串;而strptime中的p代表解析:把一个字符串转换成日期时间。这些名字比较老,来源于ANSI C的标准库(甚至更早的影响)……

撰写回答