【发布时间】:2019-04-15 17:46:07
【问题描述】:
我在这里问过一个类似的问题,它有所帮助。但经过一些 QA 测试后,我注意到我的逻辑出现错误(python 新手)。我使用fabric 连接到远程linux 服务器来运行命令并收集数据。不幸的是,数据可以具有不同值的相同键。我想根据这些数据创建一个字典,对于那些具有相同键名的人,将所有值放入该键中。另外,我怎样才能在控制台上显示织物隐藏输出。
各种测试,涉及语法、defaultdict 和其他一些我在谷歌上发现但无法工作的东西
在远程服务器上执行的命令
bpimage_cmd = ssh_connect.run(rf"sudo /usr/openv/netbackup/bin/admincmd/bpimagelist -L -backupid {last_backup_image} -media | egrep -e 'Policy:' -e 'ID:' -e 'Client:'")
bpimage_cmd.stdout.split('\n')的输出
['Client: hostname',
'Backup ID: hostname_1555217510',
'Policy: POLICY-ONE',
'Proxy Client: (none specified)',
'Job ID: 4630072',
'Data_Classification_ID: (none specified)',
'Storage Lifecycle Policy: SLP-DATA-Infinite',
'Origin Master GUID: (none specified)',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaax',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: @aaaar',
' ID: L02460',
' ID: L02512',
'']
我用来转成字典的命令,
backup_client_info = dict(re.split(r":\s*",s.strip(),1) for s in bpimage_cmd.stdout.split('\n') if s.strip())
backup_client_info
{'Client': 'hostname',
'Backup ID': 'hostname_1555217510',
'Policy': 'POLICY-ONE',
'Proxy Client': '(none specified)',
'Job ID': '4630072',
'Data_Classification_ID': '(none specified)',
'Storage Lifecycle Policy': 'SLP-DATA-Infinite',
'Origin Master GUID': '(none specified)',
'ID': 'L02512'}
为什么它只保留一个“ID”对我来说很有意义,因为它需要在字典中是唯一的。
我希望将所有 ID 值放在一个键中,其中值不是 @aaa*,例如 'ID': 'L02512','L02460' 在这种情况下。
【问题讨论】:
标签: linux python-3.x