{
"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