Sep-09-2019, 06:48 AM
Hi All,
I am able to print desired output line by line, however I am storing output in Dict and later appending to List.
My issue is, not able to print dict correctly, something is going wrong.
Line by Line output
I am able to print desired output line by line, however I am storing output in Dict and later appending to List.
My issue is, not able to print dict correctly, something is going wrong.
data = """adsl name 1 Ashank Race PVT LTD adsl name 2 praful adsl name 3,55 reliance park adsl name 5 sort & ltd adsl name 7 kishor adsl name 8 syed adsl name 9 pinki adsl name 10 Sushil adsl name 11~16,20~21 shivraj patil adsl name 17 urvi adsl name 22 Ritesh Patil adsl name 23 kankunta adsl name 25 abh=hek adsl name 27 Tanuja adsl name 29 Kamal adsl name 32 M/S Balaji adsl name 33 M/s Balaji adsl name 37 freeg wifi adsl name 38 anjana""" port_list = [] for line in data.split('\n'): port_details= {} if ',' in line and '~' not in line: #port_details = {} # port_range = line.strip()[len("adsl name "):] # customer = line.strip()[len("adsl name "):].split(' ')[1:] # customer = ' '.join(customer) # first_port = port_range.split(',')[0] # second_port = port_range.split(',')[1].split(' ')[0] # port_details_1['port'] = first_port # port_details_1['customer'] = customer # port_list.append(port_details_1) #port_details['port'] = second_port #port_details['customer'] = customer #port_list.append(port_details) print(first_port,customer) print(second_port,customer) if ',' and '~' in line and line.count('~') == 2: first_range = line.strip()[len("adsl name "):].split(' ')[0].split(',')[0] second_range = line.strip()[len("adsl name "):].split(' ')[0].split(',')[1] customer = line.strip()[len("adsl name "):].split(' ')[1:] customer = ' '.join(customer) first_range_start = first_range.split('~')[0] first_range_end = first_range.split('~')[1] second_range_start = second_range.split('~')[0] second_range_end = second_range.split('~')[1] for first_range_port in range(int(first_range_start), int(first_range_end)+1): port_details['port'] = first_range_port port_details['customer'] = customer print(first_range_port, customer) port_list.append(port_details) for second_range_port in range(int(second_range_start), int(second_range_end)+1): print(second_range_port, customer) port_details_2['port'] = second_range_port port_details_2['customer'] = customer port_list.append(port_details_2) if '~' in line and (line.count('~')) == 1: range_start = line.strip()[len("adsl name "):].split(' ')[0].split('~')[0] range_end = line.strip()[len("adsl name "):].split(' ')[0].split('~')[1] customer = line.strip()[len("adsl name "):].split(' ')[1:] customer = ' '.join(customer) for range_port in range(int(range_start), int(range_end)+1): print(range_port, customer) port_details['port'] = range_port port_details['customer'] = customer port_list.append(port_details) else: if ',' not in line: port = line.strip()[len("adsl name "):].split(' ')[0] customer = line.strip()[len("adsl name "):].split(' ')[1:] customer = ' '.join(customer) print(port, customer) port_details['port'] = port port_details['customer'] = customer port_list.append(port_details) for details in port_list: print(details['port'],details['customer'])
Line by Line output
Output:1 Ashank Race PVT LTD
2 praful
3 praful
24 praful
5 sort & ltd
7 kishor
8 syed
9 pinki
10 Sushil
11 shivraj patil
12 shivraj patil
13 shivraj patil
14 shivraj patil
15 shivraj patil
16 shivraj patil
20 shivraj patil
21 shivraj patil
17 urvi
22 Ritesh Patil
23 kankunta
25 abh=hek
27 Tanuja
29 Kamal
32 M/S Balaji
33 M/s Balaji
37 freeg wifi
38 anjana
Dict outputOutput:1 Ashank Race PVT LTD
2 praful
5 sort & ltd
7 kishor
8 syed
9 pinki
10 Sushil
16 shivraj patil
16 shivraj patil
16 shivraj patil
16 shivraj patil
16 shivraj patil
16 shivraj patil
21 shivraj patil
21 shivraj patil
17 urvi
22 Ritesh Patil
23 kankunta
25 abh=hek
27 Tanuja
29 Kamal
32 M/S Balaji
33 M/s Balaji
37 freeg wifi
38 anjana
difference Output:11 shivraj patil
12 shivraj patil
13 shivraj patil
14 shivraj patil
15 shivraj patil
16 shivraj patil
20 shivraj patil
21 shivraj patil
=-=-=-=-=-==
16 shivraj patil
16 shivraj patil
16 shivraj patil
16 shivraj patil
16 shivraj patil
16 shivraj patil
21 shivraj patil
21 shivraj patil