【发布时间】:2019-01-22 03:25:01
【问题描述】:
编辑:在此处更新代码示例,https://repl.it/@HexKiz/FussyQuietPetabyte
import datetime
从日期时间导入日期时间
emp_history = { 1: ['Vox', datetime.datetime(2001, 1, 2, 0, 1), datetime.datetime(2002, 1, 2, 0, 1), 1.0], 2: ['telly', datetime.datetime(2001, 1, 2, 0, 1), datetime.datetime(2002, 1, 2, 0, 1), 1.0] }
def print_all(dict_emp_history): # 从 1 -> last 对键进行排序并打印所有记录 for x in sorted(dict_emp_history.keys()):
# Get Tuple Values
name = ([x[0] for x in dict_emp_history.values()])
start = ([x[1] for x in dict_emp_history.values()])
start = datetime.datetime.strptime(str(start), '%Y%M%d')
end = ([x[2] for x in dict_emp_history.values()])
total = ([x[3] for x in dict_emp_history.values()])
print('---------------')
print('This is record: {}'.format(x))
print(dict_emp_history[x])
print('{} -Start: {} -End: {} -Total: {}'.format(name, start, end, total))
print('---------------')
定义主(): print_all(emp_history)
main()
注意到从列表中检索值会将其作为列表项返回。 有问题的值是 datetime.datetime(2001, 1, 8, 0, 9) 一个日期时间对象。
我需要做的是,检索 datetime 对象并将其打印为字符串,使其看起来像这样 2018.01.20。我知道你可以使用 strftime,但我不断收到错误,提示该值不是日期时间对象。
这是否意味着我必须将列表转换为字符串,然后再转换回日期时间对象?
肯定有更好的方法来做到这一点。
import datetime
td = {
1: ('hex', datetime.datetime(2001, 1, 8, 0, 9), datetime.datetime(2002, 1, 8, 0, 5), 0.9999923896499239),
2: ('hex', datetime.datetime(2001, 1, 8, 0, 9), datetime.datetime(2002, 1, 8, 0, 5), 0.9999923896499239)
}
print(td)
value = ([x[2] for x in td.values()])
print(value)
print(type(value))
{1: ('hex', datetime.datetime(2001, 1, 8, 0, 9), datetime.datetime(2002, 1, 8, 0, 5), 0.9999923896499239), 2: ('hex', datetime.datetime(2001, 1, 8, 0, 9), datetime.datetime(2002, 1, 8, 0, 5), 0.9999923896499239)}
[datetime.datetime(2002, 1, 8, 0, 5), datetime.datetime(2002, 1, 8, 0, 5)]
<class 'list'>
我希望 var 命名值的类型是 datetime 对象类型。
【问题讨论】:
-
I expected the type for the var named value to be of type datetime object.为什么?这是一个日期时间的列表。另外,你能用strftime展示你的尝试吗? -
@Tomothy32 此处显示:repl.it/@HexKiz/FussyQuietPetabyte