我有一个日志文件,其中包含1,770,781行以下形式的内容:
[02/Jan/2015:08:08:43] "GET /click?article_id=139&user_id=19550 HTTP/1.1" 200 3078
我希望你能为我翻译一下以下内容,它与it技术有关。我需要提取时间、文章ID和用户ID,并以方便分析的格式进行组合。目前,我有以下代码,可以提取这些元素并尝试将它们组合在Pandas DataFrame中:
logs = pd.DataFrame(columns=['time', 'article_id', 'user_id'])
regex = '\[(?P<time>.*?)\] "GET (.*?=)(?P<article_id>\d+)(&.*?=)(?P<user_id>\d+)'
for line in log_file:
time = re.match(regex, line).group('time')
article_id = re.match(regex, line).group('article_id')
user_id = re.match(regex, line).group('user_id')
logs.append([time, article_id, user_id])
但是这个程序运行时间非常长,我开始觉得我应该放弃这种方法。有没有什么办法可以使它更加高效?尝试这样做真的现实吗?如果不是,那么有没有更好的方法来获取这些数据?
m=re.match(regc, line)
吗? - user4601931regex
不该在那里,我修改了我的回答。 - J.J. Hakalalogs = []
,然后在循环中使用logs.append((time, article_id, user_id))
? - J.J. Hakala