You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CSV数据中图片请求占比统计异常:结果始终显示0.0%

问题分析与修复方案

核心问题

  • 变量初始化位置错误:hits和image_hits在for循环内部初始化,每次循环都会重置为0,最终仅统计最后一行数据,而非所有请求。
  • 正则匹配逻辑偏差:
    • 将整个CSV行转为字符串匹配后缀,但CSV每行包含多个字段,应该定位到存储请求文件名的特定列,而非整行。
    • 正则仅匹配大写PNG,忽略了小写png的情况,且未做大小写不敏感处理。
  • 未处理空数据场景:如果没有任何请求数据,会触发除以0的错误。

修复后的代码

import re
import csv

file = downloadData(url)
reader = csv.reader(file.splitlines(), delimiter=',')
heading = next(reader, None)

# 统计变量移至循环外初始化,确保累计所有数据
hits = 0
image_hits = 0

for line in reader:
    hits += 1
    # 替换为你CSV中存储请求路径/文件名的列索引(示例为第2列,索引1)
    request_path = line[1]
    # 大小写不敏感匹配常见图片后缀
    if re.search(r"\.(jpeg|gif|png)$", request_path, re.IGNORECASE):
        image_hits += 1

# 避免除以0错误
percentage = (image_hits / hits) * 100 if hits > 0 else 0.0

print("Image requests account for {:.1f}% of all requests".format(percentage))

关键修复说明

  • 把统计变量移到循环外,保证每次循环都能累计计数,而非每次重置。
  • 针对CSV的特定字段匹配,避免整行字符串中的无关内容干扰匹配结果。
  • 正则添加re.IGNORECASE标志,覆盖PNG/png、JPEG/jpeg等大小写组合的后缀。
  • 增加空数据判断,防止无请求时出现除以0的运行时异常。

内容的提问来源于stack exchange,提问作者qwertyuiop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 20:20:54