KeepServerEx配置导出JSON串提取IP

{
	"project": {
		"common.ALLTYPES_DESCRIPTION": "使用模拟器驱动程序的示例项目",
		"servermain.PROJECT_TITLE": "模拟器驱动程序演示",
		"channels": [{
			"common.ALLTYPES_NAME": "1BJ11",
			"servermain.MULTIPLE_TYPES_DEVICE_DRIVER": "Mitsubishi Ethernet",
			"servermain.CHANNEL_DIAGNOSTICS_CAPTURE": false,
			"servermain.CHANNEL_UNIQUE_ID": 476164021,
			"servermain.CHANNEL_ETHERNET_COMMUNICATIONS_NETWORK_ADAPTER_STRING": "172.30.8.145:Intel(R) 82574L Gigabit Network Connection",
			"servermain.CHANNEL_WRITE_OPTIMIZATIONS_METHOD": 2,
			"servermain.CHANNEL_WRITE_OPTIMIZATIONS_DUTY_CYCLE": 10,
			"servermain.CHANNEL_NON_NORMALIZED_FLOATING_POINT_HANDLING": 0,
			"devices": [{
					"common.ALLTYPES_NAME": "1BJ111",
					"servermain.MULTIPLE_TYPES_DEVICE_DRIVER": "Mitsubishi Ethernet",
					"servermain.DEVICE_MODEL": 6,
					"servermain.DEVICE_UNIQUE_ID": 2724769910,
					"servermain.DEVICE_ID_FORMAT": 0,
					"servermain.DEVICE_ID_STRING": "172.30.98.94:255"
				}

			]

		}]
	}
}
import json
import re

# 定义要读取的JSON文件路径
file_path = 'C:/Users/JA014690/Desktop/123.json'

# IP识别规则
ip_pattern = r'\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b'


# 打开并读取文件内容
with open(file_path, 'r', encoding='utf-8-sig') as file:
    data = json.load(file)

# 样例数据
# print(len(data['project']['channels']))
# print(data['project']['channels'][0]['devices'][0]['common.ALLTYPES_NAME'])
# print(data['project']['channels'][0]['devices'][0]['servermain.DEVICE_ID_STRING'])

# 循环JSON列表数据
for i in data['project']['channels']:
    # 循环JSON列表数据
    for x  in i['devices']:
        try:
            ip_address = re.findall(ip_pattern, x['servermain.DEVICE_ID_STRING'])[0][0] + "." + \
                         re.findall(ip_pattern, x['servermain.DEVICE_ID_STRING'])[0][1] + "." + \
                         re.findall(ip_pattern, x['servermain.DEVICE_ID_STRING'])[0][2] + "." + \
                         re.findall(ip_pattern, x['servermain.DEVICE_ID_STRING'])[0][3]

            print(x['common.ALLTYPES_NAME'], ip_address)
        except Exception as e:
            continue