从 defaultdict(list) 打印 k, v

Printing k, v from a defaultdict(list)

我有一个程序可以通过 SSH(Paramiko 库)连接到 Cisco Wireless 局域网控制器 (WLC)。然后我 运行 一个 'show client summary' 和 parse\process 生成报告的输出。

除打印外一切正常。

注意:'e' 是使用以下方法创建的字典:defaultdict(list)

如果我使用这个:

for k, v in e.items():
    print('{:25}'.format(k), end='')
    for i in v:
        print('{:5}'.format(i), end='')
    print("\n")

输出如下所示:

       AP                Count
------------------------------
AP0027.e3f1.9208             8    7    6

AP70df.2f42.3450             1    1    1

AP25-AthleticOffice          4    4    3

AP70df.2f74.9868             1    1    1

AP70df.2f42.3174             2    2    2

我不想要数据行之间的额外空行。

但是如果我简单地去掉最后一行:print("\n"),

然后我得到这种输出格式:

AP0027.e3f1.9208             8    7    6AP70df.2f42.3450             1    1    1AP25-AthleticOffice          4    4    3AP70df.2f42.3174             1    1    1AP70df.2f42.3174             2    2    2

没有马车return。

我得到的是零运输 return 或两个。

发生这种情况是因为 print() 已经附加了 end 字符 - 默认情况下是 \n。您可以通过仅打印一个空字符串(与 print('', end='\n') 相同)来修复它:

for k, v in e.items():
    print('{:25}'.format(k), end='')
    for i in v:
        print('{:5}'.format(i), end='')
    print('')