szaydel
4/21/2020 - 1:14 AM

tcpreplay example

Actual: 10 packets (1008 bytes) sent in 0.002267 seconds
Rated: 444640.4 Bps, 3.55 Mbps, 4411.11 pps
Statistics for network device: eth1
	Successful packets:        10
	Failed packets:            0
	Truncated packets:         0
	Retried packets (ENOBUFS): 0
	Retried packets (EAGAIN):  0
>>> dict(zip(*s.fields(pattern=r'^(Success|Fail|Trunc)', sub_pattern='packets:\s+', replacement='')))
{'Successful': '10', 'Failed': '0', 'Truncated': '0'}

### or, this
>>> dict( 
...     ChainMap( 
...         *[{i[0]: i[1]} for i in s.compress(indexes=(0, 2), pattern=r'^(Success|Fail|Trunc)')] 
...     ) 
... )

{'Truncated': '0', 'Failed': '0', 'Successful': '10'}

### or, this
>>> s.filtered_map(lambda s: (s.split()[0], s.split()[2]), lambda s: s.split()[0] in ('Successful', 'Failed', 'Truncated'))
[('Successful', '10'), ('Failed', '0'), ('Truncated', '0')]

### or, this
>>> s.to_dict_func(lambda l: ((l.split()[0], l.split()[2]),), pattern=r'^(Success|Fail|Trunc)')
[{'Successful': '10'}, {'Failed': '0'}, {'Truncated': '0'}]

### or, this
>>> [{i.split()[0]: i.split()[1]} for i in s.lastn(5, pattern=r'^(Success|Fail|Trunc)', sub_pattern='packets:\s+', replacement='')]
[{'Successful': '10'}, {'Failed': '0'}, {'Truncated': '0'}]