我得先把舞台布置一下。申请书是Kafka。
最终目标:我希望能够使Kafka配置匹配我在字典中提供的内容(特别是主题)。添加主题,使Kafka匹配是很容易的。我遇到的问题是,如果Kafka的主题不在字典里,就把它们从Kafka中删除。唯一提供Kafka的变量是“topicname”,以便删除。
我可以从kafka获得一个当前添加的主题列表,作为我们称之为{{existing}}的变量。看起来是这样的:
topic1
topic2
topic3
topic4
我的字典如下:
kafka_topics:
topic1:
partitions: 1
replication_factor: 1
topic2:
partitions: 1
replication_factor: 1
我该如何对主题3和主题4采取行动,因为它们不是dict的一部分?
乍一看,你只是说做一件事 if {{existing}} != {{item.key}} then do action
但这不起作用,因为它一次只检查一个键。如果类型颠倒了(列表是dict,dict是list),你可以很容易地说如果主题包含现有的,那么就执行操作。
一定有更好的办法。
1条答案
按热度按时间jhdbpxl91#
检查每个项目
existing
列表位于kafka_topics.keys()
. 例子:让您:
替换
debug
用你想要的“行动”。或者您可以使用
difference
过滤上述数据结构。