私は辞書の2つのリストの違いを見つけることを試みています。私はこのフォーラムでいくつかの情報を見つけましたが、私の目的には役立ちませんでした。私のテーブル名が一意であるformat.Here私は辞書との違いのavailable_rowリストでincoming_rowsを比較する必要がPythonの辞書の2つのリストの違いを見つける
ここ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'}
]
は、辞書の別のリストに一覧表示します。 条件: 1.新しい列の追加。 2.データ型の変更 これらの2つの条件が真の場合、expected_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私たちはリストの交差点を見つけようとしているので* unhashableなオブジェクト*でいっぱいですほとんど無関係です。 (例えば "set()。add({" some ":" dict "})') ') –