Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/225: Рейтинг темы: голосов - 225, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 10.04.2017
Сообщений: 6

Получение данных из вложенного словаря

11.04.2017, 22:09. Показов 47799. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, я новичок в python, недавно начал изучать и сразу появилась проблема со сложным словарем.
Есть словарь вида
Python
1
2
3
4
5
6
{'response': [555, {'nomer': 750, 'name': 'Оля'}, 
                   {'nomer': 24, 'name': 'Петя'},
                   {'nomer': 741, 'name': 'Игорь'},
                   {'nomer': 11, 'name': 'Юля'},
                   {'nomer': 254, 'name': 'Лена'},
]}
Необходимо вывести

Python
1
2
3
4
5
750  Оля
24   Петя
741  Игорь
11   Юля
254  Лена
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.04.2017, 22:09
Ответы с готовыми решениями:

Получение данных из словаря
как получить current из {'k10temp': } ???

Изменение значения вложенного словаря
Добрый день! При изменении значения во вложенном словаре plita='5', значение изменяется и в plita: {'ЛДСП 16 БЕЗ ТЕКСТУРЫ':...

Как получить значение из вложенного словаря
Добрый день, подскажите, пожалуйста, как получить значение по ключу из вложенного словаря? Например, как обратиться к E-2 -> V_app, что...

5
46 / 46 / 10
Регистрация: 11.03.2014
Сообщений: 133
11.04.2017, 22:53
Python
1
2
3
4
5
6
7
temp = {'response': [555, {'nomer': 750, 'name': 'Оля'}, 
                   {'nomer': 24, 'name': 'Петя'},
                   {'nomer': 741, 'name': 'Игорь'},
                   {'nomer': 11, 'name': 'Юля'},
                   {'nomer': 254, 'name': 'Лена'},]}
for t in temp['response'][1:]:
    print("{:<4} {}".format(t['nomer'], t['name']))
То что нужно?
1
0 / 0 / 0
Регистрация: 10.04.2017
Сообщений: 6
11.04.2017, 23:42  [ТС]
спасибо все отлично срабатывает, теперь появилась другая проблемка, теперь иногда появляются дополнительные значения, к примеру
Python
1
2
3
4
5
6
{'response': [555, {'nomer': 750, 'name': 'Оля'}, 
                   {'nomer': 24, 'name': 'Петя', 'city':'Москва'},
                   {'nomer': 741, 'name': 'Игорь'},
                   {'nomer': 11, 'name': 'Юля', 'city':'Питер'},
                   {'nomer': 254, 'name': 'Лена'},
]}
и при таком выводе выдает ошибку, KeyError
Python
1
2
for t in temp['response'][1:]:
    print("{:<4} {}".format(t['nomer'], t['name'],t['city']))
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
12.04.2017, 03:26
Лучший ответ Сообщение было отмечено mooris как решение

Решение

одним из вариантов может быть

Python
1
2
for t in temp['response'][1:]:
    print(("{:<6} "*len(t)).format(t.get('nomer'), t.get('name'), t.get('city')))
Добавлено через 3 минуты
или

Python
1
2
for t in temp['response'][1:]:
    print("{:<4} {:<6} {}".format(t.get('nomer'), t.get('name'), t.get('city', '')))
Добавлено через 11 минут
ну или вот так

Python
1
2
3
4
5
for t in temp['response'][1:]:
    print(('{{:<{}}} {{:<{}}} {{}}'.format(max([len(str(x.get('nomer'))) for x in temp['response'][1:]]) + 1,
                                           max([len(str(x.get('name'))) for x in temp['response'][1:]]) + 1)).format(
        t.get('nomer'), t.get('name'), t.get('city', '')
    ))
1
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
12.04.2017, 03:37
но последний вариант, конечно же, только если нравятся скобочные человечки

Кликните здесь для просмотра всего текста
0
46 / 46 / 10
Регистрация: 11.03.2014
Сообщений: 133
12.04.2017, 09:41
Цитата Сообщение от mooris Посмотреть сообщение
спасибо все отлично срабатывает, теперь появилась другая проблемка, теперь иногда появляются дополнительные значения, к примеру
Ошибка появляется из-за того, что у вас в некоторых словарях нет ключа 'city', а в цикле вы индексируете все словари по этому ключу. Я бы тоже, как и Jabbson, использовал замечательный словарный метод dict.get('city', 'nocity'), который в случае присутствия ключа 'city' вернет соответствующее ему значение, а в случае отсутствия будет возвращен второй аргумент (в моем случае это 'nocity')
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.04.2017, 09:41
Помогаю со студенческими работами здесь

Python - найти список значений ключей словаря вложенного в списки
Добрый день уважаемые форумчане. Вопрос такой: Есть список - d, и список ключей l: d = , , , ] l =

Получение данных словаря по ключу
Вопрос без кода, при необходимости попробую написать. Есть словарь с данными: &quot;имя&quot;, &quot;Вася&quot; &quot;фамилия&quot;,...

Достать Key и Value из вложенного словаря в Dictionary<string, Object>
После десереализации встроенными средствами json файла jsd.Deserialize&lt;Dictionary&lt;string, dynamic&gt;&gt;(jsonFile) (нужен dynamic...

Создание вложенного словаря с ключами уже существующего но другими значениями
Дано: Имеется словарь Dictionary&lt;string, Dictionary&lt;string, Dictionary&lt;string, string&gt;&gt;&gt; Требуется: Создать новый словарь точно такой же...

Selenium и получение текста вложенного элемента
Всем привет, пишу автотест для проверки авторизации настранице. Всё круто, тест идёт, но когда ассертом проверяю, скажем, наличие на...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru