gpt4 book ai didi

python - 检查字典中的非零值

转载 作者:行者123 更新时间:2023-12-01 03:01:08 25 4
gpt4 key购买 nike

我正在编写一个程序,该程序连接到 Cisco 交换机或路由器,然后检查“show int”的输出。然后我处理/解析数据,直到我有一个包含二十一个的字典键/值对。所有值都是整数。它完全按照我想要的方式工作到目前为止。

我在想象下一步要做什么时遇到一些困难,我希望能得到一些想法和/或指导。

我想做的是:

检查每个值。如果所有值都为零,则跳过该字典。 如果任何单个值非零(如果不是,则它将是正整数) 零),那么我想将整个字典保存到文件中。

我的程序的每次迭代都会创建一个字典,表示来自交换机或路由器端口的数据。

由于我想要整个字典(所有二十一个键/值对),即使单个值非零,我不确定是否添加所有值,然后检查总和是否 > 0 是最好的选择。

我可能会检查数千个交换机端口。

在我看来,“最好”是开始检查值,一旦我达到非零值,我就想保存整个字典并继续下一个(循环通过交换机上的端口) ,例如),但我只是不确定如何实现这一点。

我希望获得一些有关如何最好地完成此任务的想法或示例。

哦,我对使用“最好”这个词犹豫不决。由于我将处理数千个端口,所以我不想要一种低效的方法,这就是为什么我犹豫是否简单地将所有值相加。

我只是不知道如何输入代码:“一旦我看到一个非零值,保存整个字典并继续下一个”。

最佳答案

这是请求的直接翻译,从您已经完成的部分开始,并合并 any()函数应用于 values字典的内容。

# I am in the process of writing a program that connects to a Cisco switch or
# router and then examines the output of a 'show int '. I then process\parse the
# data to the point where I have a dictionary of twenty-one key\value pairs.
# All values are integers.
for device in devices:
s = run_show_interfaces(device)
d = preprocess_parse(s)

# Check each value. If ALL values are zero, then skip that dictionary. If ANY
# single value is non-zero (it will be a positive integer if it is not zero),
# then I want to save to a file the entire dictionary.
if any(d.values()):
filename = os.path.join(device, '.txt')
with open(filename, 'w') as f:
json.dump(d, f)

仅供引用,any() 函数具有提前退出功能,一旦发现非零值就会停止查找。在 Python 3 中,values() 返回数据 View ,因此它不会复制所有信息。在 Python 2 中,使用 viewvalues()以达到同样的效果。总而言之,这将为您带来出色的表现。

关于python - 检查字典中的非零值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43826775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com