Привет, ребята У меня вопрос, как суммировать одинаковые IP-адреса в словаре. У меня есть входной файл, этот файл выглядит следующим образом:Python dictionary sum
IP , Byte
10.180.176.61,3669
10.164.134.193,882
10.164.132.209,4168
10.120.81.141,4297
10.180.176.61,100
Моего шаг, чтобы открыть этот файл и разобрать IP-адрес с номером после запятой, так что я могу суммировать все байты для одного IP-адреса. Таким образом, я могу получить результат, как:
IP 10.180.176.61 , 37669
Мой код выглядит следующим образом:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import re,sys, os
from collections import defaultdict
f = open('splited/small_file_1000000.csv','r')
o = open('gotovo1.csv','w')
list_of_dictionaries = {}
for line in f:
if re.search(r'\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}.*',line):
line_ip = re.findall(r'\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}',line)[0]
line_by = re.findall(r'\,\d+',line)[0]
line_b = re.sub(r'\,','',line_by)
list_of_dictionaries['IP'] = line_ip
list_of_dictionaries['VAL'] = int(line_b)
c = defaultdict(int)
for d in list_of_dictionaries:
c[d['IP']] += d['VAL']
print c
Любая идея будет здорово.