Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/16: Рейтинг темы: голосов - 16, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 11.06.2011
Сообщений: 34

Получить один элемент из списка словарей

02.04.2013, 12:39. Показов 3063. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста, как реализовать:

Есть json ответ вида [{'name':'lo', 'ip':'127.0.0.1'},{'name':'eth0', 'ip':'10.0.0.1'}]
Хочется иметь возможность удобно обращаться к словарям - т.е. указать имя интерфейса и получить адрес (учитывая, что интерфейс может отсутствовать)
Сейчас реализовал через list comprehensions, проверяю, что длинна списка единичная и, если всё ок, беру адрес интерфейса, но это как-то стрёмно выглядит, нет ли более элегантного решения?

Заранее благодарю за ответы
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.04.2013, 12:39
Ответы с готовыми решениями:

Как получить данные из списка словарей
Нужно получить имена водителей из списка словарей, который выглядит примерно так. {'drivers': {'id': {'FirstName': 'Александр1', ...},...

Поиск по списку словарей и вывод списка словарей
У меня есть список словарей, например: data= Как мне вывести этот список, чтобы каждый словарь был на каждой отдельной строке,...

Один элемент списка указывает на элемент из другого списка
Можно ли как-нибудь сделать так, что элемент из one под i номером был связан с элементом из списка two под i номером? Своего рода в...

4
42 / 42 / 7
Регистрация: 15.07.2012
Сообщений: 98
02.04.2013, 17:08
Python
1
2
3
4
5
6
7
8
9
In [1]: test =  [{'name':'lo', 'ip':'127.0.0.1'},{'name':'eth0', 'ip':'10.0.0.1'}]
 
In [2]: d = dict([(i['name'], i['ip']) for i in test])
 
In [3]: d
Out[3]: {'eth0': '10.0.0.1', 'lo': '127.0.0.1'}
 
In [4]: d['lo']
Out[4]: '127.0.0.1'
1
0 / 0 / 0
Регистрация: 11.06.2011
Сообщений: 34
02.04.2013, 18:14  [ТС]
s0rg , приогромнейшее спасибо!
Очень извиняюсь, что забыл уточнить - версия python2.6, 2.7 - исключается (centos 5.8, процесс перехода на 2.7 невероятно трудоёмкий и долгий) - это раз
и два - [{'name':'lo', 'ip':'127.0.0.1', 'hostname':'server1'},{'name':'eth0', 'ip':'10.0.0.1', 'hostname':'server1'}]?, а так?
0
42 / 42 / 7
Регистрация: 15.07.2012
Сообщений: 98
02.04.2013, 19:02
Если hostname не нужен - то мой вариант сработает и для такого набора данных. Вроде код совместим с 2.6 (под рукой его нет, так что проверить не смогу)
0
0 / 0 / 0
Регистрация: 11.06.2011
Сообщений: 34
03.04.2013, 11:18  [ТС]
преогромнейшее спасибо!
сделал так:
Python
1
2
3
4
5
6
7
test =  [{'name':'lo', 'ip':'127.0.0.1', 'vlan': 'test1'},{'name':'eth0', 'ip':'10.0.0.1', 'vlan': 'test2'}]
>>> dict([(i['name'], {'ip': i['ip'], 'vlan':i['vlan']}) for i in test])
{'eth0': {'ip': '10.0.0.1', 'vlan': 'test2'},
 'lo': {'ip': '127.0.0.1', 'vlan': 'test1'}}
>>> d = dict([(i['name'], {'ip': i['ip'], 'vlan':i['vlan']}) for i in test])
>>> d['eth0']['vlan']
'test2'
и конструктор, естественно, в 2.6 нормально работает, это я с dict comprehensions попутал
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.04.2013, 11:18
Помогаю со студенческими работами здесь

Из списка A удалить те цепочки четных элементов, в которых есть хотя бы один элемент из списка B
Вводное: из списка A удалить те цепочки четных элементов, в которых есть хотя бы один элемент из списка B. Пример: список A: 3 2 4 5...

Дано число D и указатель Р0 на один из элементов непустого списка. Вставить после данного элемента списка новый элемент
Помогите друзья! Нужно сделать на си. Дано число D и указатель Р0 на один из элементов непустого списка. Вставить после данного...

Прочитать один элемент (атом или список) из входного потока, и вывести каждый элемент списка с указанием его типа
Синтаксически все элементы языка программирования Scheme (Lisp) делятся на атомы и списки. Атомам относятся числа, слова (произвольная...

Получить указатель на элемент двунаправленного списка, добавить значение в начало списка и очистить его
Нужно создать двунаправленный список //вроде так, но не уверен struct Double_List {//структура данных int Data;...

Удалить после элемента Е один элемент, добавить/удалить/вставить элемент, создать копию списка
Помогите пожалуйста, ничего не объяснив, дали такие два задания на C#: 1. Дан список целых чисел. Удалить из списка L за каждым...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru