gpt4 book ai didi

python - 使用 re 从文本文件制作字典

转载 作者:行者123 更新时间:2023-12-03 16:10:19 25 4
gpt4 key购买 nike

考虑 assets/logdata.txt 中的标准 Web 日志文件。该文件记录了用户在访问网页时进行的访问(就像这个!)。日志的每一行都有以下项目:

  • 主机(例如,'146.204.224.152')
  • 一个用户名(例如,'feest6811' 注意:有时用户名会丢失!在这种情况下,使用“-”作为用户名的值。)
  • 发出请求的时间(例如,'21/Jun/2019:15:45:24 -0700')
  • 发布请求类型(例如,'POST /incentivize HTTP/1.1' 注意:并非所有内容都是 POST!)

  • 您的任务是将其转换为字典列表,其中每个字典如下所示:
    example_dict = {"host":"146.204.224.152", 
    "user_name":"feest6811",
    "time":"21/Jun/2019:15:45:24 -0700",
    "request":"POST /incentivize HTTP/1.1"}
    这是 txt 数据文件的示例。
    sample of the text file
    我写了这几行代码:
    import re
    def logs():
    with open("assets/logdata.txt", "r") as file:
    logdata = file.read()
    #print(logdata)
    pattern="""
    (?P<host>.*)
    (-\s)
    (?P<user_name>\w*)
    (\s)
    ([POST]*)
    (?P<time>\w*)
    """
    for item in re.finditer(pattern,logdata,re.VERBOSE):
    print(item.groupdict())
    return(item)
    logs()
    它帮助我制作 "host""user_name"但是我不能继续并满足其余的要求。有人可以帮忙吗?
    this is what i have done till now

    最佳答案

    试试这个我的 friend

    import re


    def logs():
    logs = []
    w = '(?P<host>(?:\d+\.){3}\d+)\s+(?:\S+)\s+(?P<user_name>\S+)\s+\[(?P<time>[-+\w\s:/]+)\]\s+"(?P<request>.+?.+?)"'
    with open("assets/logdata.txt", "r") as f:
    logdata = f.read()
    for m in re.finditer(w, logdata):
    logs.append(m.groupdict())
    return logs

    关于python - 使用 re 从文本文件制作字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64072079/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com