python - 根据值的时间增量更新字典
问题描述
我正在尝试根据从其值生成的时间增量来更新字典。
这是字典的一个例子:
my_dict = {'6.1.7.1': {'timestamp':('2020-05-26 12:05:08')},
'1.1.1.2': {'timestamp': ('2020-05-26 12:05:08')},
'2.61.5.4': {'timestamp': ('2020-05-25 12:05:08')},}
我想知道键值是否有超过24小时的时间戳值来删除它,所以我这样做了:
from datetime import date
from datetime import datetime
import pandas as pd
today = date.today()
today=today.strftime(format= '%Y-%m-%d %H:%M:%S')
today=pd.to_datetime(today)
print( today)
for k,v in my_dict.items():
timedelta = v - today
if timedelta>24:
my_dict.pop(k, None)
但我收到以下错误:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-49-037388a76b67> in <module>
8
9 for k,v in my_dict.items():
---> 10 timedelta = v - today
11 if timedelta>24:
12 my_dict.pop(k, None)
pandas/_libs/tslibs/timestamps.pyx in pandas._libs.tslibs.timestamps._Timestamp.__sub__()
TypeError: descriptor '__sub__' requires a 'datetime.datetime' object but received a 'dict'
如何操纵字典的值来获取 timedelta 并消除字典中的键和值?由于我对字典不太熟悉,因此将不胜感激任何帮助。
解决方案
使用您的方法进行解析str
-datetime
这可能就是您正在寻找的(只是for
循环)
import copy
for k,v in copy.deepcopy(my_dict).items():
timedelta = pd.to_datetime(v['timestamp']) - today
if timedelta.days>1:
my_dict.pop(k, None)
我假设您想if
处理条件超过 1 天或 24 小时...
推荐阅读
- sas - SAS:如何将下几行中的值带到当前行,但不知道要看多远
- python - 从另一个文件中的文本中删除文件中定义的所有停用词(Python)
- unit-testing - 如何从子目录访问测试方法
- express - 在哪里处理从 HTTP 到 HTTP 的重定向?
- caching - TYPO3:文件元数据更改时清除页面缓存
- spring - 是否可以创建一个忽略 URI 某些部分的代理控制器
- python - 在 Pandas 中切片字符串的有效方法
- r - r 将栅格堆栈或砖块转换为动画
- php - PHP nodeValue被归类为非对象
- r - R: 如何使用 get() 或 mget() 获取列表中的对象?