Что лучший метод должен собрать данные вокруг использования Вашего приложения?

Вы можете временно преобразовать каждое значение в dict, использовать get для обеспечения полного дополнения значений и записать его обратно в виде списка. Это не требует импорта:

for k in dict1:
    d = dict(dict1[k])
    dict1[k] = [(item, d.get(item, 0)) for item, _ in list1]

Если вы хотите иметь словарь в выводе, последняя строка практически не меняется:

dict1[k] = {item: d.get(item, 0)) for item, _ in list1}

Или, если порядок имеет значение, и вы используете Python < 3.6:

dict1 = OrderedDict(item, d.get(item, 0)) for item, _ in list1)

Хотя я бы посоветовал вам этого не делать, возможен один вкладыш:

dict1 = {k: [(item, d.get(item, 0)) for item, _ in list1] for k, d in ((k, dict(v)) for k, v in dict1.items())}
5
задан Matt Hamilton 29 September 2008 в 03:18
поделиться

5 ответов

Я предложил бы, чтобы Вы заставили свое приложение писать свою "информацию об использовании" где-нибудь и затем, с пользовательским разрешением, передавать его в электронном виде время от времени.

Отметьте акцент выше. В зависимости от Вашей юрисдикции Вы могли войти в серьезную проблему, передающую любой вид данных из чужого компьютера без разрешения.

Вы, более вероятно, получите разрешение если:

1/Вы проясняете на установке или обновлении, что Ваша программа соберет информацию и передаст ее только с разрешением.

2/Вы объясняете ясно, что информация и что это только содержит "информацию использования", ничто, что может быть прослежено до пользователя программного обеспечения (НИКАКИЕ порядковые номера, и т.д.).

3/Вы запрашиваете разрешение нечасто передавать. Если бы у меня была неприятная программа, которая ежедневно спрашивала меня, то я скоро прекратил бы использовать ее в целом.

3
ответ дан 15 December 2019 в 06:38
поделиться

Я полагаю, что Вы уже получили хороший ответ на свое ре вопроса аспект конфиденциальности технологического решения.

Я также хотел бы упомянуть, что необходимо попытаться использовать HTTP или HTTPS по нормальным 80/443 портам - это маловероятно для порождения проблем с брандмауэрами и прокси. Используйте MS настройки прокси IE, поскольку они обычно устанавливаются правильно.


От полностью другого предполагаемого я хотел бы сказать, что лучший способ узнать об использовании Вашего программного обеспечения состоит в том, чтобы проверить, есть ли у Вас какие-либо 'дружелюбные' пользователи в Вашей установке, основывают и берут интервью у них. Это могла быть некоторая компания партнера или люди, которые являются Вашей 'экспериментальной группой' для бет нового выпуска. Говорите с ними. Grap Ваш менеджер и проводит день, идя в их сайт, если возможный и просто видящий себя, как и затем они нажимают кнопки. Сделайте примечания. Слушайте обратную связь. Установите личные отношения в поэтому следующий раз, когда они говорят с Вами непосредственно.

Если Ваше приложение является небольшим, и Вашей компанией не является никакая Microsoft намного лучше, чтобы быть близко к Вашей базе пользователей, чем собрать анонимные данные использования, которые прилагают значительные усилия, чтобы собрать и обработать и затем еще больше усилия понять.

0
ответ дан 15 December 2019 в 06:38
поделиться

Одна идея состоит в том, чтобы отправить анонимную статистику с разрешением Ваших пользователей.

Другая идея состоит в том, чтобы обеспечить, большой отчет прослушивают/спрашивают кнопку вопроса в Вашем приложении, таким образом, они могут сказать Вам, когда что-то, они думают, неправильно, происходит, Вы отправили бы состояние приложения вдоль отчета.

Всегда будьте ясны на том, что является Вами собирающийся отправлять и заставлять пользователей иметь опцию быть не анонимным (всегда устанавливаемые по умолчанию анонимизированные данные), и Вы могли бы быть удивлены, когда Вы получаете много из не анонимные данные по выбору пользователей.

И будьте ясны при помощи языка пользователей, НИКОГДА не говорите вещи как, "я собираюсь отправить, Шифр зашифровал дамп памяти текущего состояния стопки и "кучи" приложения. Да/нет?", но вещи как "я собираюсь отправить список Вашего действия в программе: кнопки, которые Вы нажали и тип и сумма файлов, которые Вы открыли. Это поможет нам создать лучшую программу для Вас, но можно выбрать то, что Вы хотите, чтобы мы получили".

0
ответ дан 15 December 2019 в 06:38
поделиться

Отказ от ответственности: Я - разработчик на этом продукте, таким образом, я могу быть немного смещен на том, насколько большой это :)

В настоящее время существует продукт на рынке, который может предоставить Вам эту функциональность и для.NET и для JAVA-приложений, что мы называем Аналитику Во время выполнения. См.: http://www.preemptive.com/runtime-intelligence-services.html для деталей.

Этот продукт в настоящее время поставлется и для.NET и для Java, и бесплатная версия, предлагающая ограниченный набор функций, будет включена в Visual Studio 2010.

Использование приложения может быть прослежено в пределах от статистики высокого уровня по выполняемому количеству раз и по который Операционная система / версии Платформы вниз к частоте использования отдельных функций.

Мы позволяем, чтобы Вы дали Вашим пользователям или выбор подписываний или уклонения в передаче данных использования и данных отправляется любого по SSL (значение по умолчанию) или стандартный HTTP. Влияние производительности на Ваше приложение минимально, и мы проявляем большую заботу для не влияния на скорость отклика кода.

Это решение является отличным для оценок или тестирования бета-версии, поскольку можно отследить использование приложения непосредственно вместо того, чтобы полагаться на обзоры или предположить то, что делают пользователи.

Для выпущенных приложений это обеспечивает леса программы улучшения качества обслуживания клиентов, и видимость в накопленные данные ценна всем от верхнего управления вниз разработчику.

Мы нашли, что требуется меньше чем час для установки приложения для основного использования, сообщающего без изменений кода, требуемых, так как мы можем работать непосредственно над двоичными файлами блока.

Для получения информации о ценах или получить оценку свяжитесь с продажами с нашего веб-сайта, поскольку я - просто разработчик :)

Поскольку подробная техническая информация или любые другие вопросы не стесняются связываться со мной.

0
ответ дан 15 December 2019 в 06:38
поделиться

На самом деле, я думаю, что вы пытаетесь сделать простой Business Intelligence.

Не забудьте установить "подходящий" dashbord для отслеживания собранных данных, глубоко подумайте над индикатором, который вы будете реализовывать.

0
ответ дан 15 December 2019 в 06:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: