我在json文件中有以下日期,看起来像这样
dataset = [{'date': '2017-01-27 21:56:57'}]
如何将其转换为timeStruct,以便它只给我'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'
答案 0 :(得分:2)
感谢@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
答案 1 :(得分:1)
您可以使用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'}]
答案 2 :(得分:1)
您必须首先使用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'}]