'Write List of Jsons using Strings
I'm staring at a file I'm not sure what to do with. File (data.txt) that contains a list of dictionaries like this:
{'name': 'jerry', 'internalip1': '192.168.1.1', 'externalip1': '1.1.1.1', 'internalip2': '192.168.1.2', 'externalip2': '2.2.2.2', 'port1': '5451', 'port2': '5450', 'port3': '', 'port4': '', 'port5': '', 'port6': ''}
{'name': 'chris', 'internalip1': '192.168.2.1', 'externalip1': '3.3.3.3', 'internalip2': '192.168.3.5', 'externalip2': '4.4.4.4', 'port1': '1234', 'port2': '', 'port3': '5671', 'port4': '5672', 'port5': '80', 'port6': '443'}
...
...
How can I create a new text file (data_updated.txt) that looks like this:
edit "externalip1--internalip1 Port port1"
set extip externalip1
set mappedip "internalip1"
set portforward enable
set extport port1
set mappedport port1
edit "externalip1--internalip1 Port port2"
set extip externalip1
set mappedip "internalip1"
set portforward enable
set extport port2
set mappedport port2
...
...
Solution 1:[1]
You can do something like this:
with open('data.txt') as data_file:
lines = data_file.readlines()
output = []
for line in lines:
data = eval(line.strip())
output.extend([
f"edit \"{data['externalip1']}--{data['externalip1']} Port {data['port1']}\"\n",
f"set extip externalip1\n",
f"set mappedip \"{data['internalip1']}\"\n",
f"set portforward enable\n",
f"set extport {data['port1']}\n",
f"set mappedport {data['port1']}\n",
'\n',
# ...
])
with open('data_updated.txt', 'w') as output_file:
output_file.writelines(output)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 |
