我在一个json文件中有以下日期,看起来像这个
dataset = [{'date': '2017-01-27 21:56:57'}]
如何将其转换为时间Struct,使其只显示"2017-01-27">
正在使用以下代码。。。
import json
import time
for d in dataset:
d['timeStruct'] = time.strptime(d['date'], '%Y-%m-%d')
给我一个错误ValueError: unconverted data remains: 05:21:16
有没有一种方法可以转换为Y-m-d,而不需要分割小时、分钟和秒的部分?在SQL中,它会根据'%Y-%m-%d'
自动转换
多亏了@Peter Wood,答案得到了改进。
您可以使用'{:%Y-%m-%d}'.format(t)
from datetime import datetime
if __name__ == '__main__':
dataset = [{'date': '2017-01-27 21:56:57'}]
for d in dataset:
d['timeStruct'] = '{:%Y-%m-%d}'.format(datetime.strptime(d['date'], '%Y-%m-%d %H:%M:%S'))
t变量:
2017-1-27
您可以使用dateutil
模块。
import dateutil
dataset = [{'date': '2017-01-27 21:56:57'}]
for d in dataset:
d['timeStruct'] = dateutil.parser.parse(d['date']).strftime('%Y-%m-%d')
print(dataset)
输出:
[{'date': '2017-01-27 21:56:57', 'timeStruct': '2017-01-27'}]
您必须首先使用strptime()
将其转换为元组,然后使用strftime()
:再次将其格式化为字符串
dataset = [{'date': '2017-01-27 21:56:57'}]
for d in dataset:
timetuple = time.strptime(d['date'],"%Y-%m-%d %H:%M:%S")
d['timeStruct'] = time.strftime("%Y-%m-%d",timetuple)
print(dataset)
>> [{'date': '2017-01-27 21:56:57', 'timeStruct': '2017-01-27'}]