Я пытаюсь найти разницу между двумя списками словаря. Я нашел некоторую информацию на этом форуме, но не выполнил свою задачу.Найти разницу между двумя списками словаря в Python
incoming_rows = [{'column_name': 'LOAD_ID', 'data_type': 'int', 'table_name': 'CONFIG'},
{'column_name': 'ROW_NUMBER', 'data_type': 'int', 'table_name': 'CONFIG'},
{'column_name': 'CREATE_DATE', 'data_type': 'VARCHAR(20)', 'table_name': 'CONFIG'},
{'column_name': 'CONFIG_TYPE', 'data_type': 'varchar(1)', 'table_name': 'CONFIG'},
{'column_name': 'CONFIG_ID', 'data_type': 'numeric(10,0)', 'table_name': 'CONFIG'}
]
available_row = [{'column_name': 'LOAD_ID', 'data_type': 'int', 'table_name': 'CONFIG'},
{'column_name': 'ROW_NUMBER', 'data_type': 'int', 'table_name': 'CONFIG'},
{'column_name': 'CREATE_DATE', 'data_type': 'date', 'table_name': 'CONFIG'}
]
Здесь мне нужно сравнить incoming_rows со списком available_row словаря и разница хочу перечислить в другом списке Словаре format.Here мое имя таблицы является уникальным. Условия: 1. Любое новое добавление столбцов. 2. Любые изменения в типе данных Если эти два условия истинны, то ожидаемый_row должен содержать только эти измененные строки.
# expected output
expected_row=[{'column_name': 'CONFIG_TYPE', 'data_type': 'varchar(1)', 'table_name': 'CONFIG'},
{'column_name': 'CONFIG_ID', 'data_type': 'numeric(10,0)', 'table_name': 'CONFIG'},
{'column_name': 'CREATE_DATE', 'data_type': 'VARCHAR(20)', 'table_name': 'CONFIG'}
]
находят пересечение 2 списка. это может помочь: http://stackoverflow.com/questions/642763/python-intersection-of-two-lists –
@csessh, так как мы пытаемся найти пересечение списка *, заполненного несмонтируемыми объектами *, эта ссылка есть в основном неактуальны. (например, try 'set(). add ({" some ":" dict "})') –