如何在从谷歌应用引擎加载数据时格式化日期?
我使用 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的标准库(甚至更早的影响)……