如何循环通过json字符串并将它们转换为datetime对象?

时间:2014-10-11 19:40:02

标签: python json string datetime

我有一个包含以下内容的json文件,我想将其字符串值转换为日期时间对象:

[" 2014-01-20 00:01:31"," 2014-01-20 00:01:51"," 2014-01-20 00 :02:12"]

我认为我需要创建一个for循环并迭代字符串值并使用strptime方法转换它们。我不确定如何创建for循环,以便正确迭代字符串值。

我认为它应该如下:

for items in data:
    dateTime = datetime.strptime(items, '%Y-%m-%d %H:%M:%S')
print dateTime

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

您的循环没问题,但如果您想要一个日期时间对象列表,请使用list comp

from datetime import datetime 

data = ["2014-01-20 00:01:31", "2014-01-20 00:01:51", "2014-01-20 00:02:12"]
print [datetime.strptime(x.rstrip(),'%Y-%m-%d %H:%M:%S') for x in data]

[datetime.datetime(2014, 1, 20, 0, 1, 31), datetime.datetime(2014, 1, 20, 0, 1, 51), datetime.datetime(2014, 1, 20, 0, 2, 12)]

x.rstrip()会删除换行符

答案 1 :(得分:0)

在Python for循环中,可以迭代任何类型的元素(大多数容器,尤其是list,可以包含不同类型的元素)。它只需要元素之后的元素并将其绑定到for语句中使用的名称:

dates = ["2014-01-20 00:01:31", "2014-01-20 00:01:51", "2014-01-20 00:02:12"]
for dt in dates:
    dateTime = datetime.strptime(dt, '%Y-%m-%d %H:%M:%S') 
    print dateTime