#python #dictionary #extract #assert
Вопрос:
Я пытаюсь написать тесты для своего api, мой ответ приводит меня к уродливому словарю только с одним значением и большим количеством информации в нем, включая список, который мне нужно утвердить:
{'data': OrderedDict([('count', 2), ('next', None), ('previous', None), ('results', [OrderedDict([('id', 1), ('uuid', '345cd6a7-69d2-4e35-808c-7bbfbee0ed66'), ('created_at', '2021-07-23T15:51:18.619102Z'), ('updated_at', '2021-07-23T15:51:18.619122Z'), ('deleted', False), ('name', 'Vegan'), ('address', ''), ('city', None), ('postal_code', None), ('country', None), ('phone', None), ('email', None)]), OrderedDict([('id', 2), ('uuid', 'e6a7ce08-259e-4a5b-bf96-2f311382b8ac'), ('created_at', '2021-07-23T15:51:18.619359Z'), ('updated_at', '2021-07-23T15:51:18.619373Z'), ('deleted', False), ('name', 'Dessert'), ('address', ''), ('city', None), ('postal_code', None), ('country', None), ('phone', None), ('email', None)])])]), 'code': 200, 'message': None}
Я хочу подтвердить это с помощью моих данных сериализатора, которые возвращают мне список, который совпадает с одним списком в моем значении словаря ответов:
[OrderedDict([('id', 1), ('uuid', '345cd6a7-69d2-4e35-808c-7bbfbee0ed66'), ('created_at', '2021-07-23T15:51:18.619102Z'), ('updated_at', '2021-07-23T15:51:18.619122Z'), ('deleted', False), ('name', 'Vegan'), ('address', ''), ('city', None), ('postal_code', None), ('country', None), ('phone', None), ('email', None)]), OrderedDict([('id', 2), ('uuid', 'e6a7ce08-259e-4a5b-bf96-2f311382b8ac'), ('created_at', '2021-07-23T15:51:18.619359Z'), ('updated_at', '2021-07-23T15:51:18.619373Z'), ('deleted', False), ('name', 'Dessert'), ('address', ''), ('city', None), ('postal_code', None), ('country', None), ('phone', None), ('email', None)])]
если бы я мог каким-то образом извлечь этот список из этого словаря, было бы здорово, любая помощь была бы признательна.
Комментарии:
1. Так тебе просто нужно
data.results
?
Ответ №1:
Прямо из репл:
>>> from collections import OrderedDict
>>> api = {'data': OrderedDict([('count', 2), ('next', None), ('previous', None), ('results', [OrderedDict([('id', 1), ('uuid', '345cd6a7-69d2-4e35-808c-7bbfbee0ed66'), ('created_at', '2021-07-23T15:51:18.619102Z'), ('updated_at', '2021-07-23T15:51:18.619122Z'), ('deleted', False), ('name', 'Vegan'),('address', ''), ('city', None), ('postal_code', None), ('country', None), ('phone', None), ('email', None)]), OrderedDict([('id', 2), ('uuid', 'e6a7ce08-259e-4a5b-bf96-2f311382b8ac'), ('created_at', '2021-07-23T15:51:18.619359Z'), ('updated_at', '2021-07-23T15:51:18.619373Z'), ('deleted', False), ('name', 'Dessert'), ('address', ''), ('city', None), ('postal_code', None), ('country', None), ('phone', None), ('email', None)])])]), 'code': 200, 'message': None}
>>> api
{'data': OrderedDict([('count', 2), ('next', None), ('previous', None), ('results', [OrderedDict([('id', 1), ('uuid', '345cd6a7-69d2-4e35-808c-7bbfbee0ed66'), ('created_at', '2021-07-23T15:51:18.619102Z'), ('updated_at', '2021-07-23T15:51:18.619122Z'), ('deleted', False), ('name', 'Vegan'), ('address', ''), ('city', None), ('postal_code', None), ('country', None), ('phone', None), ('email', None)]), OrderedDict([('id', 2), ('uuid', 'e6a7ce08-259e-4a5b-bf96-2f311382b8ac'), ('created_at', '2021-07-23T15:51:18.619359Z'), ('updated_at', '2021-07-23T15:51:18.619373Z'), ('deleted', False), ('name', 'Dessert'), ('address', ''), ('city', None), ('postal_code', None), ('country', None), ('phone', None), ('email', None)])])]), 'code': 200, 'message':None}
>>> api['data']['results']
[OrderedDict([('id', 1), ('uuid', '345cd6a7-69d2-4e35-808c-7bbfbee0ed66'), ('created_at', '2021-07-23T15:51:18.619102Z'), ('updated_at', '2021-07-23T15:51:18.619122Z'), ('deleted', False), ('name', 'Vegan'), ('address', ''), ('city', None), ('postal_code', None), ('country', None), ('phone', None), ('email', None)]), OrderedDict([('id', 2), ('uuid', 'e6a7ce08-259e-4a5b-bf96-2f311382b8ac'), ('created_at', '2021-07-23T15:51:18.619359Z'), ('updated_at', '2021-07-23T15:51:18.619373Z'), ('deleted', False), ('name', 'Dessert'), ('address', ''), ('city', None), ('postal_code', None), ('country', None), ('phone', None), ('email', None)])]
Комментарии:
1. Спасибо за помощь, это было именно то, что мне было нужно.