Python: анализировать список в словаре

response = {'links': [{'rel': 'self', 'href': 'XXXXXXX'}], 'id': 22, 'attribute_type': 'Number', 'label': 'Type', 'required': True, 'constrained': True, 'order': 2, 'allowed_values': [{'links': [], 'value': 701, 'label': 'Manual', 'order': 1, 'is_default': True, 'is_active': True}, {'links': [], 'value': 702, 'label': 'Automation', 'order': 2, 'is_default': False, 'is_active': True}, {'links': [], 'value': 703, 'label': 'Performance', 'order': 3, 'is_default': False, 'is_active': True}, {'links': [], 'value': 704, 'label': 'Scenario', 'order': 4, 'is_default': False, 'is_active': True}], 'multiple': False, 'data_type': 3, 'searchable': True, 'free_text_search': False, 'search_key': 'type', 'system_field': True, 'original_name': 'Type', 'is_active': True}

поэтому я могу получить идентификатор в ответе как таковой:

for r in response:
    if r['label'] == 'Type'
        return r['id']

Однако я пытаюсь получить «значение» в списке «allowed_values» в ответе.

'allowed_values': [{'links': [], 'value': 701, 'label': 'Manual', 'order': 1, 'is_default': True, 'is_active': True}, {'links': [], 'value': 702, 'label': 'Automation', 'order': 2, 'is_default': False, 'is_active': True}, {'links': [], 'value': 703, 'label': 'Performance', 'order': 3, 'is_default': False, 'is_active': True}, {'links': [], 'value': 704, 'label': 'Scenario', 'order': 4, 'is_default': False, 'is_active': True}]

Возможно ли это, если да, то как?

Любая помощь приветствуется. Заранее спасибо!


С помощью Антона я этим и воспользовался!

if r.get('allowed_values'):
   av = r.get('allowed_values')
      for av_values in av:
          if av_values['label'] == subvalue:
             field_value = av_values['value']
             return field_value

@AntonvBR да, это распечатает 702, 703, 704 и так далее?

vay 03.08.2018 02:32

Да, чтобы распечатать их, вы можете зациклить понимание списка: for i in values: print i. Ключевым моментом здесь является понимание списка. Они очень мощные! Удачи

Anton vBR 03.08.2018 02:34
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
52
1

Ответы 1

Вот где в Python пригодятся списки. Хм, хотя и довольно просто. Я посмотрю, смогу ли я найти обманщика.

values = [i['value'] for i in response['allowed_values']]
print(values)  # --> prints[701, 702, 703, 704]

Другие вопросы по теме