Python统计CSV文件中IP访问次数并用JSON展示
Python统计CSV文件中IP访问次数并用JSON展示
本教程将引导您使用Python统计CSV文件中每个IP地址的访问次数。
问题:
在 'Q2' 文件夹下有一个名为 'weblog.csv' 的文件,其中包含网站的访问记录。请使用Python完成以下任务:
- 使用CSV模块读取 'weblog.csv' 文件。2. 使用
Collections.Counter统计每个IP地址的访问次数 {IP: 访问次数}。3. 使用JSON模块以易于阅读的格式展示最终结果。
**解决方案:**pythonimport csvfrom collections import Counterimport json
1. 读取CSV文件ip_addresses = []with open('Q2/weblog.csv', 'r') as file: reader = csv.reader(file) # 跳过标题行(如果存在) next(reader, None) for row in reader: # 假设IP地址在CSV文件的每一行的第一列 ip_addresses.append(row[0])
2. 统计IP地址访问次数ip_counts = Counter(ip_addresses)
3. 将结果转换为JSON格式json_output = json.dumps(ip_counts, indent=4)
打印JSON结果print(json_output)
代码解释:
-
导入必要的模块: -
csv: 用于读取和处理CSV文件。 -collections: 用于使用Counter对象轻松统计元素频率。 -json: 用于将Python数据结构编码为JSON格式。 -
读取CSV文件: - 使用
open()函数以只读模式 ('r') 打开CSV文件。 - 使用csv.reader()创建一个读取器对象。 - 使用next(reader, None)跳过标题行(如果存在)。 - 迭代读取器对象的每一行,并将第一列(假设是IP地址)添加到ip_addresses列表中。 -
统计IP地址访问次数: - 使用
Counter(ip_addresses)创建一个字典,其中键是唯一的IP地址,值是它们出现的次数。 -
将结果转换为JSON格式: - 使用
json.dumps()将ip_counts字典转换为JSON格式的字符串。 -indent=4参数用于提供缩进以提高可读性。 -
打印JSON结果: - 使用
print()函数打印最终的JSON格式结果。
这将生成一个包含每个唯一IP地址及其对应访问次数的JSON字符串。
原文地址: https://www.cveoy.top/t/topic/dpzY 著作权归作者所有。请勿转载和采集!