基于 python 中的键进行节流
Throttling based on keys in python
我想知道是否有一种方法可以在纯 python 中限制事件。
例如,通常其他工具有一种查看特定事件的方法,比如:
{"id":111,"message":"hello","host":"example"}
可能还有另一个事件紧随其后或在一段时间内发生,如下所示:
{"id":112,"message":"hello","host":"example"}
鉴于这两个事件,您通常可以查看事件中的 2 个键,因此对于此示例,message 键和 host 键在两个事件之间具有相同的值。因为这 2 个事件具有相同的 key 和 value,所以您可以将它们视为一个事件。这就是我想要 "throttling" 的方式。
我想知道在 python 中是否有执行此操作的好方法,我正在考虑使用 database/redis 但不确定最好的方法是什么。对于事件,id 是唯一的。
谢谢!
编辑:我实际上已经完成了这是 Logstash,但我一直在寻找一种方法来做到这一点 python。
这样的事情怎么样?我假设这些是您正在查看的词典(这就是它们的样子)。
首先,让 keys
成为您要查找的键集。假设 D
和 E
是您正在查看的事件。
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 way" 来执行此操作,但是已经有一段时间了,我没有时间查找它。至少这适用于我试过的例子。
编辑:请注意,如果您只有想要查找的那两个键,则可以丢弃 keys
和循环,直接测试它们。
我想知道是否有一种方法可以在纯 python 中限制事件。 例如,通常其他工具有一种查看特定事件的方法,比如:
{"id":111,"message":"hello","host":"example"}
可能还有另一个事件紧随其后或在一段时间内发生,如下所示:
{"id":112,"message":"hello","host":"example"}
鉴于这两个事件,您通常可以查看事件中的 2 个键,因此对于此示例,message 键和 host 键在两个事件之间具有相同的值。因为这 2 个事件具有相同的 key 和 value,所以您可以将它们视为一个事件。这就是我想要 "throttling" 的方式。
我想知道在 python 中是否有执行此操作的好方法,我正在考虑使用 database/redis 但不确定最好的方法是什么。对于事件,id 是唯一的。
谢谢!
编辑:我实际上已经完成了这是 Logstash,但我一直在寻找一种方法来做到这一点 python。
这样的事情怎么样?我假设这些是您正在查看的词典(这就是它们的样子)。
首先,让 keys
成为您要查找的键集。假设 D
和 E
是您正在查看的事件。
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 way" 来执行此操作,但是已经有一段时间了,我没有时间查找它。至少这适用于我试过的例子。
编辑:请注意,如果您只有想要查找的那两个键,则可以丢弃 keys
和循环,直接测试它们。