Code: Alles auswählen
import re
def logs():
with open("assets/logdata.txt", "r") as file:
# log_data = file.read()
in_line = file.readline()
print (in_line)
host, rest = in_line.split(" - ")
user_name = re.search(r"[a-z]*[0-9]*", rest)
user_name = user_name.group()
time = re.findall(r'(\[.*\])', rest)
# time = time[1:-1]
request = re.findall(r'(\".*\s.*\")', rest)
print (request)
print(time)
print(host)
print (user_name)
# one_item = {'host': host, 'user_name': user_name, 'time': time, 'request': request}
one_item = {'host': host, "user_name": user_name, 'time': time, 'request': request}
print (one_item)
return one_item
raise NotImplementedError()
['"POST /incentivize HTTP/1.1"']
['[21/Jun/2019:15:45:24 -0700]']
146.204.224.152
feest6811
{'host': '146.204.224.152', 'user_name': 'feest6811', 'time': ['[21/Jun/2019:15:45:24 -0700]'], 'request': ['"POST /incentivize HTTP/1.1"']}
Aber gefordert ist:
example_dict = {"host":"146.204.224.152",
"user_name":"feest6811",
"time":"21/Jun/2019:15:45:24 -0700",
"request":"POST /incentivize HTTP/1.1"}
Wichtig ist hier nicht, dass ich noch nicht example_dict codiert habe, sondern die einzelnen Einträge. Die haben hier nur ein Anführungszeichen, während meine geklammert ua ist. Wie kann ich das überwinden? Eine Funktion time= time[1,-1] funktioniert nicht, liefert nur einen leeren Eintrag wieder!