Как сериализировать вложенный dict в python

Имеется список списков

params = {
    'foo': {1: 0},
    'bar': {2: 1}
}

необходимо преобразовать его в JSON, при этом сохраняя именно такой вид вложенности данных, т.к. в последствии этот список будет использоваться в UNIT-тесте для передачи через fastapi

params = {
    'foo': {44, 55},
    'bar': {baz[0].baz_id, 66}
}
fastapi_client.put('/some/url/is/here/', json=params)

пытаясь запустить код в таком виде получаю исключение

TypeError: Object of type set is not JSON serializable


Ответы (1 шт):

Автор решения: alex

set в list переделай. написано же. у тебя пример это "список списков". а ниже у тебя "список" сетов.

Сеты нельзя, а можно листы:

params = {
    'foo': [44, 55],
    'bar': [baz[0].baz_id, 66]
}
fastapi_client.put('/some/url/is/here/', json=params)

а если ты все таки хотел "список списков" то двоеточие забыл

params = {
    'foo': {44: 55},
    'bar': {baz[0].baz_id: 66}
}
fastapi_client.put('/some/url/is/here/', json=params)

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

→ Ссылка