python - 在正则表达式中返回字典列表而不是打印
问题描述
从记录用户访问网页时进行的访问的文件中提取日志数据时,我想返回 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())
解决方案
如果你想让你的函数返回一个值,你需要使用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)]
推荐阅读
- google-chrome - 跟踪 chrome 插件所做的 DOM 更改
- c# - 在 IOC 注册之前围绕异步初始化的最佳实践
- xamarin.forms - 实施 Google One Tap 登录 Xamarin 表单
- java - 休眠和查询视图。结果计数正常,但所有行都相同,但它们不在数据库中
- simplesamlphp - 与 simplesamlphp 一起使用的 cert 和 pem 文件的来源是什么
- postgresql - 如何使用 dbt 设置 Postgres 表以使用列式存储?
- python - 在python中组合两个不同维度的数组
- javascript - 创建一个管理按钮,单击该按钮会显示一个弹出表单
- python - 保存Django模型时如何要求特定字段传递一个值
- css - div 的宽度错误(flex)