Python:使用日期时间作为键从词典中提取1天的值

时间:2015-08-11 12:23:56

标签: python dictionary

我有一个字典,其中日期时间为键,数字为值。

dict = {datetime.datetime(2015, 7, 8, 1 ,15, 3):3, datetime.datetime(2015, 7, 8, 8 ,15, 8):4,
        datetime.datetime(2015, 7, 9, 7 ,15, 0):4 , datetime.datetime(2015, 7, 9, 10 ,30, 0):8}

我想要这个结果:

result = {datetime.datetime(2015, 7, 9, 07 ,15, 0):4 , datetime.datetime(2015, 7, 9, 10 ,30, 0):8}

result = [4, 8]

我编辑了我的字典。之前是字符串键和值:

dict = {'08/07/2015 01:15':'3', '08/07/2015 08:15':'5',
           '09/07/2015 07:15':'4', '09/07/2015 10:30':'8'}

3 个答案:

答案 0 :(得分:2)

您可以简单地遍历您的密钥并找到匹配项:

def extract(data, day):
    return {key: data[key] for key in data if day in key}

dict = {'08/07/2015 01:15':'3', '08/07/2015 08:15':'5',
        '09/07/2015 07:15':'4', '09/07/2015 10:30':'8'}

print extract(dict, '09/07/2015')
{'09/07/2015 07:15': '4', '09/07/2015 10:30': '8'}

可以类似地实现第二次输出

def extract(data, day):
    return [data[key] for key in data if day in key]

答案 1 :(得分:1)

由于你的键是字符串,只需循环并匹配字符串:

{key: value for key, value in dict.items() if key.startswith('09/07/2015')}

或仅获取值:

[value for key, value in dict.items() if key.startswith('09/07/2015')]

如果您确实拥有datetime.datetime() objects,则可以将datetime.date() method的输出与datetime.date object匹配:

from datetime import date

[value for key, value in dict.items() if key.date() == date(2015, 7, 9)]

答案 2 :(得分:0)

您可以通过多种方式完成此操作,但关键是使用日期。首先使用strptime(https://docs.python.org/2/library/datetime.html#datetime.datetime.strptime)将该字符串转换为日期时间对象,然后通过使用适当的格式转换为strftime,可以获得独特的日子。 最后,您可以使用"在"中搜索您的密钥。使用解析的日子。