Итак, у меня есть список словарей, внутри которых я создал из файла журнала. Я хочу создать новый ключ под названием «IP» с извлеченным IP-адресом из «Message»
Это пример списка словарей.
[{'Date': 'Jun 29', 'Time': '03:22:22', 'PID': '13251', 'Message': 'Authentication failed from 163.27.187.39 (163.27.187.39): Permission denied in replay cache code', 'Access Type': 'Success'}
...
{'Date': 'Jun 29', 'Time': '03:22:22', 'PID': '13263', 'Message': 'connection from 61.74.96.178 () at Wed Jun 29 03:22:22 2005', 'Access Type': 'Success'}]
Я подумал об использовании регулярного выражения но я получаю сообщение об изменении размера словаря во время итерации.
for Dict in data:
for k,v in Dict.items():
if k == 'Message':
re.findall(r"[0-9]+(?:\.[0-9]+){3}\s", v)
Dict["host/IP address"] = re.findall(r"[0-9]+(?:\.[0-9]+){3}\s", v)
else:
Dict["host/IP address"] = ""
print(Dict)