Sep-09-2019, 11:01 AM
observed same issue, after dict in loop
now some improvement, however some difference
now some improvement, however some difference
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: 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_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): #port_details = {} 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) print('Printing Dict ----------- ') for details in port_list: print(details['port'],details['customer'])
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
Printing Dict -----------
1 Ashank Race PVT LTD
2 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
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