首页 > 解决方案 > 在正则表达式中返回字典列表而不是打印

问题描述

从记录用户访问网页时进行的访问的文件中提取日志数据时,我想返回 dict 格式。我对模式没有问题,我只想让我的函数返回一个 dict 文件,因为它所做的只是显示项目

def logs():
    with open("assets/logdata.txt", "r") as file:
        logdata = file.read()
        pattern=r'(?P<host>\d+.\d+.\d+.\d+)\s\W\s(?P<user_name>[a-zA-Z]+\d+|-)'
        for item in re.finditer(pattern,logdata): 
            print(item.groupdict())

标签: pythonarraysdictionary

解决方案


如果你想让你的函数返回一个值,你需要使用return关键字:

def logs():
    with open("assets/logdata.txt", "r") as file:
        logdata = file.read()
        pattern=r'(?P<host>\d+.\d+.\d+.\d+)\s\W\s(?P<user_name>[a-zA-Z]+\d+|-)'
        return [item.groupdict() for item in re.finditer(pattern,logdata)]

推荐阅读