使用字符串写json列表



我盯着一个文件,我不知道该怎么做。文件(data.txt),包含如下的字典列表:

{'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'}
...
...

如何创建一个新的文本文件(data_updated.txt),看起来像这样:

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
...
...

你可以这样做:

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 externalip1n",
            f"set mappedip "{data['internalip1']}"n",
            f"set portforward enablen",
            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)

最新更新