# создаете словарь
persons = {}
# пополняете словарь
for num in enumerate(name, date_time, first_ip):
persons[num] = {"user": {"name": name, "IP from the last entry point": first_ip, "Last login date": date_time}}
# в конце кода записываете в json, записывать каждый раз в цикле for нет необходимости
with open(r'C:\users.json', 'w', encoding='utf-8') as fh:
fh.write(json.dumps(message, ensure_ascii=False))
try:
date_time = users.select_one(':nth-child(4) span').text
except:
pass # Или date_time = '' - в зависимости от ситуации