这批日志有几条 INFO

👁️ 2 人浏览 💬 0 人评论 ❤️ 添加收藏

按模型,三行日志里 count_level(lines, "INFO") 交回几?(两条 INFO、一条 ERROR)

贯穿本节的运维模型(判题机纯 Python、无网,这是它的确定模型,见 spine.py):服务上线后靠日志/指标/健康/告警盯住它。

结构化日志每行是一条 JSON:{"level":..,"msg":..}level_of 取级别、count_level 数某级别、has_error 有没有 ERROR。

import json


def parse(line):
    """一行结构化日志(JSON 字符串)解析成字典。"""
    return json.loads(line)


def level_of(line):
    """这行日志的级别(level 字段)。"""
    return parse(line)["level"]


def count_level(lines, lvl):
    """一批日志里某个级别有几行。"""
    return sum(1 for l in lines if parse(l)["level"] == lvl)


def has_error(lines):
    """这批日志里有没有 ERROR。"""
    return any(parse(l)["level"] == "ERROR" for l in lines)

lines = ['{"level":"INFO","msg":"a"}', '{"level":"ERROR","msg":"b"}', '{"level":"INFO","msg":"c"}']
print(count_level(lines, "INFO"))
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论