Python 列表理解无法筛选列表(可能存在日期比较问题?)
我有一份字典清单。每个字典都包含一个时间戳字段。我试图仅提取具有指定日期时间戳的词典 我使用这段代码提取行,但它不匹配任何行:Python 列表理解无法筛选列表(可能存在日期比较问题?),python,Python,我有一份字典清单。每个字典都包含一个时间戳字段。我试图仅提取具有指定日期时间戳的词典 我使用这段代码提取行,但它不匹配任何行: def extract_rows_for_date(datarows, specified_date): date_match_pattern = '%Y-%m-%d %H:%M:%S' extracted_timestamps = [datetime.strptime(x['ts'], date_match_pattern)
def extract_rows_for_date(datarows, specified_date):
date_match_pattern = '%Y-%m-%d %H:%M:%S'
extracted_timestamps = [datetime.strptime(x['ts'], date_match_pattern)
for x in datarows
if datetime.strptime(x['ts'], date_match_pattern).date() == specified_date.date()]
# ... more logic
例如,如果一个“行”包含一个时间戳“2012-05-14 08:24:00”,那么如果将日期“2012-05-14”指定为要匹配的日期,则我希望它是模式匹配的。然而,目前还没有使用上面的列表理解和日期比较逻辑进行匹配
上面的代码段出了什么问题?将上面引用的代码段作为
datetime(2012,5,14)
asspecified\u date
和[{ts':'2012-05-14 08:24:00}]
作为datarows
传递时,隔离代码段是有效的,因此我认为您需要显示更多的周围代码。也许调用此方法时的输入不是您所期望的?您可以发布调用函数时使用的数据吗?我花了最后一个小时查看输入数据。函数本身似乎没有问题-输入数据(从数据库读取)实际上不包含所需的时间戳-即,测试数据库中没有为测试填充足够的夹具数据。