将两个字典中的日期与元组作为值进行比较
Comparing dates from two dictionaries with tuples as values
我是 python 初学者,目前从事自动化工作。所以我想比较两本词典。首先,如果来自主人的钥匙在奴隶中。如果是,比较来自这些键的日期(值[1]),检查来自主控的日期是否更新并打印来自主控的值[0]。我可以格式化日期进行比较,但我不知道如何在检查两者上都存在哪个键后访问从值,甚至打印它们。
master = {"test1": ("123", "2022-02-14T21:50:03.943943Z"), "test2": ("456", "2022-02-14T21:50:03.183617Z"), "test3": ("789", "2022-02-4T21:50:03.183617Z")}
slave = {"test1": ("123", "2022-02-14T08:14:47.850537Z"), "test2": ("456", "2022-02-14T14:32:08.988684Z")}
date_format = "%Y-%m-%dT%H:%M:%S.%f%z"
for key, value in master.items():
if key in slave:
print(datetime.datetime.strptime(value[1], date_format))
print(datetime.datetime.strptime(slave[value[1]], date_format))
您需要调用 slave
并访问由您正在检查的相同键引用的元素是否存在,如果存在,它当然与 [=12 中的相同=],并且你在for loop
开头定义为key
。这样,你得到了元组,你想从中提取第二个元素,即时间戳,用于比较目的。
import datetime
master = {"test1": ("123", "2022-02-14T21:50:03.943943Z"), "test2": ("456", "2022-02- 14T21:50:03.183617Z"), "test3": ("789", "2022-02-14T21:50:03.183617Z")}
slave = {"test1": ("123", "2022-02-14T08:14:47.850537Z"), "test2": ("456", "2022-02-14T14:32:08.988684Z")}
date_format = "%Y-%m-%dT%H:%M:%S.%fZ"
for key, value in master.items():
if key in slave.keys():
master_tmsp = datetime.datetime.strptime(value[1].replace(" ",""), date_format)
slave_tmsp = datetime.datetime.strptime(slave[key][1].replace(" ",""), date_format)
if master_tmsp > slave_tmsp:
print(master_tmsp)
我必须包含 .replace(" ", "")
以从时间戳字符串中删除空格。我不知道这是一个拼写错误还是您以这种方式获取数据。
我是 python 初学者,目前从事自动化工作。所以我想比较两本词典。首先,如果来自主人的钥匙在奴隶中。如果是,比较来自这些键的日期(值[1]),检查来自主控的日期是否更新并打印来自主控的值[0]。我可以格式化日期进行比较,但我不知道如何在检查两者上都存在哪个键后访问从值,甚至打印它们。
master = {"test1": ("123", "2022-02-14T21:50:03.943943Z"), "test2": ("456", "2022-02-14T21:50:03.183617Z"), "test3": ("789", "2022-02-4T21:50:03.183617Z")}
slave = {"test1": ("123", "2022-02-14T08:14:47.850537Z"), "test2": ("456", "2022-02-14T14:32:08.988684Z")}
date_format = "%Y-%m-%dT%H:%M:%S.%f%z"
for key, value in master.items():
if key in slave:
print(datetime.datetime.strptime(value[1], date_format))
print(datetime.datetime.strptime(slave[value[1]], date_format))
您需要调用 slave
并访问由您正在检查的相同键引用的元素是否存在,如果存在,它当然与 [=12 中的相同=],并且你在for loop
开头定义为key
。这样,你得到了元组,你想从中提取第二个元素,即时间戳,用于比较目的。
import datetime
master = {"test1": ("123", "2022-02-14T21:50:03.943943Z"), "test2": ("456", "2022-02- 14T21:50:03.183617Z"), "test3": ("789", "2022-02-14T21:50:03.183617Z")}
slave = {"test1": ("123", "2022-02-14T08:14:47.850537Z"), "test2": ("456", "2022-02-14T14:32:08.988684Z")}
date_format = "%Y-%m-%dT%H:%M:%S.%fZ"
for key, value in master.items():
if key in slave.keys():
master_tmsp = datetime.datetime.strptime(value[1].replace(" ",""), date_format)
slave_tmsp = datetime.datetime.strptime(slave[key][1].replace(" ",""), date_format)
if master_tmsp > slave_tmsp:
print(master_tmsp)
我必须包含 .replace(" ", "")
以从时间戳字符串中删除空格。我不知道这是一个拼写错误还是您以这种方式获取数据。