基于python中的键的限制

时间:2018-05-17 14:18:41

标签: python throttling

我想知道是否有办法在纯python中限制事件。 例如,通常其他工具可以查看特定事件,例如:

{"id":111,"message":"hello","host":"example"}

并且可能会出现另一个事件,该事件恰好在时间间隔之后或之内:

 {"id":112,"message":"hello","host":"example"}

鉴于这两个事件,您通常可以查看事件中的2个键,因此对于此示例,消息键和主机键之间具有相同的值这两件事。由于这两个事件具有相同的键和值,因此您可以将它们视为一个。这就是我想要“节流”的方式。

我想知道在python中是否有一个很好的方法可以做到这一点,我正在考虑使用数据库/ redis,但不确定最好的方法是什么。对于事件,id是唯一的。

谢谢!

编辑:我实际上已经完成了这个是Logstash,但我一直在寻找一种方法来实现纯Python。

1 个答案:

答案 0 :(得分:1)

这样的事情怎么样?我假设这些是你正在看的字典(这就是它们的样子)。

首先,让keys成为您要查找的键集。假设DE是您正在查看的事件。

found = False
for k in keys:
    if D[k] == E[k]:
        keys2 = copy(keys)
        keys2.remove(k)
        for l in keys2:
            if D[l] == E[l]:
                found = True
                break
    if found: break

可能有更好的“Python方式”来做到这一点,但它已经有一段时间了,我没有时间查找它。至少这是我尝试过的例子。

编辑:请注意,如果您只想要查找这两个键,则可以放弃keys和循环,直接测试它们。