Я читал разные вопросы, но ничего не нашел, что вполне соответствует этому сценарию, и я не могу его размазать.Сравнение списков словарей в Python
Я хочу сравнить 2 списка словарей. Я не хочу проверять отдельные пары значений ключа, я хочу проверить весь словарь на другой, но полученный означает, что один из словарей в одном списке имеет дополнительный элемент «id», который другой список не так Мне не нужно сравнивать это.
status_code и убывание не являются уникальными
только убывание может измениться, но, насколько я понимаю все это потом изменилось.
Образец данных:
data_db = [
{ "id": 1, "status_code": 2, "desc": "Description sample1" },
{ "id": 2, "status_code": 4, "desc": "Description sample2" },
{ "id": 3, "status_code": 5, "desc": "Description sample3" },
{ "id": 4, "status_code": 5, "desc": "Description sample4" }
]
data_api = [
{ "status_code": 1, "desc": "Description sample5" },
{ "status_code": 4, "desc": "Description sample6" },
{ "status_code": 5, "desc": "Description sample3" }
]
Ожидаемый результат: (! Как это достаточно запутанной для меня)
missing_from_db = [
{ "status_code": 1, "desc": "Description sample4" },
{ "status_code": 4, "desc": "Description sample6" } # because in data_db it desc is different
]
missing_from_api = [1,2,4] # This can just be the ids from data_db
Я надеюсь, что это имеет смысл.
Код мудрый Я не придумал ничего удаленного или полезного. Ближайшая мысль, которую я имел, заключается в переформатировании data_db на это:
data_db = [
{
"id": 1,
"data": { "status_code": 2, "desc": "Description sample1" }
},
{
"id": 2,
"data": { "status_code": 4, "desc": "Description sample2" }
},
{
"id": 3,
"data": { "status_code": 5, "desc": "Description sample3" }
},
{
"id": 4,
"data": { "status_code": 5, "desc": "Description sample4" }
}
]
Спасибо!
Go с отформатированного 'data_db'. –
Написание вопроса на самом деле помогло мне сильно обдумать и обсудить эту мысль. Попробуй это в будущем, когда ты застрял/запутался! – s27840
То же самое случилось со мной много раз :) –