固定格式的文件,转换为二层字典格式

博科光交格式化处理
SW6520:monitor> sfpshow -all | grep -e Port -e RX -e TX``
Port 0:
RX Power: -2.6 dBm (554.0uW) 10.0 uW 1258.9 uW 15.8 uW 1000.0 uW
TX Power: -3.2 dBm (478.5 uW) 125.9 uW 631.0 uW 158.5 uW 562.3 uW
Port 1:
RX Power: -3.3 dBm (465.9uW) 10.0 uW 1258.9 uW 15.8 uW 1000.0 uW
TX Power: -3.2 dBm (478.4 uW) 125.9 uW 631.0 uW 158.5 uW 562.3 uW
Port 2:
RX Power: -2.8 dBm (523.9uW) 10.0 uW 1258.9 uW 15.8 uW 1000.0 uW
TX Power: -3.2 dBm (479.0 uW) 125.9 uW 631.0 uW 158.5 uW 562.3 uW
Port 3:
RX Power: -3.3 dBm (468.2uW) 10.0 uW 1258.9 uW 15.8 uW 1000.0 uW
TX Power: -3.1 dBm (484.2 uW) 125.9 uW 631.0 uW 158.5 uW 562.3 uW
Port 4:
RX Power: -2.4 dBm (576.3uW) 10.0 uW 1258.9 uW 15.8 uW 1000.0 uW
TX Power: -3.2 dBm (479.8 uW) 125.9 uW 631.0 uW 158.5 uW 562.3 uW

格式化处理脚本:
文件转换为二层字典及二层字典同键合并_第1张图片
执行结果为;
{ '0': {'RXPower': '-2.6', 'TXPower': '-3.2'},
'1': {'RXPower': '-3.3', 'TXPower': '-3.2'},
'2': {'RXPower': '-2.8', 'TXPower': '-3.2'},
'3': {'RXPower': '-3.3', 'TXPower': '-3.1'},
'4': {'RXPower': '-2.4', 'TXPower': '-3.2'}
}

二层字典合并——外层键相同的字典,相互合并。比如dict1["0"]和dict2["0"]字典合并。

文件转换为二层字典及二层字典同键合并_第2张图片

合并后执行结果为:
{
'0': {'RX': '-0.0', 'TX': '-0.0', 'port': '0', 'address': '010000'},
'1': {'RX': '-1.1', 'TX': '-1.1', 'port': '1', 'address': '110100'},
'2': {'RX': '-2.2', 'TX': '-2.2', 'port': '2', 'address': '220200'},
'3': {'RX': '-3.3', 'TX': '-3.3', 'port': '3', 'address': '330300'}
}