Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[34.201.37.128] |
|
Сообщ.
#1
,
|
|
|
Парсим лог и вытягиваем 2 значения:
IP и количество переданных байт Это все сохраняю в словарь: {'IP' : {'sent':0, 'count':0}} Все выглядит красиво, но по сортировать по количеству обращений или количеству переданных байт нельзя, как сделать правильно? |
Сообщ.
#2
,
|
|
|
нужно что-то типа базы данных, что бы можно было делать выборку
|
Сообщ.
#3
,
|
|
|
ordereddict?
|
Сообщ.
#4
,
|
|
|
Цитата Мяут-Настоящий @ ordereddict подробнее, пока ничего не нагуглил полезного Кроме как появился в 3.1 и делает упорядоченный словарь |
Сообщ.
#5
,
|
|
|
Ну так тебе же упорядоченный словарь и нужен, разве нет?
|
Сообщ.
#6
,
|
|
|
Нужно сортировать, например, по самому большому количеству запросов (по count) или самый большой трафик (по значению sent)
|
Сообщ.
#7
,
|
|
|
пока склонился к sqlite в памяти
|
Сообщ.
#8
,
|
|
|
orb, ты даже про sorted() не знаешь? мде
|
Сообщ.
#9
,
|
|
|
расскажи подробнее как сделать сортед в моей ситуации
|
Сообщ.
#10
,
|
|
|
Мде...
from collections import OrderedDict D = {'192.168.0.1': {'sent':501, 'count': 2}, '192.168.0.2': {'sent':120, 'count': 5}, '192.168.1.3': {'sent':200, 'count': 3}} def print_dict(d): for ip, data in d.items(): print ip, data def sort_dict(d, criteria): return OrderedDict(sorted(((k, v) for k, v in d.items()), key=lambda i: i[1][criteria])) print 'SENT' print_dict(sort_dict(D, 'sent')) print 'COUNT' print_dict(sort_dict(D, 'count')) |