# 処理データ
chk_data = [
{ 'id': 1, 'code': 'A10', 'pos': 52 },
{ 'id': 3, 'code': 'A30', 'pos': 52 },
{ 'id': 4, 'code': 'A40', 'pos': 52 },
{ 'id': 5, 'code': 'A50', 'pos': 52 },
]
# DBデータ
db_data = [
{ 'id': 1, 'code': 'A10', 'pos': 51, 'sort': 101 },
{ 'id': 2, 'code': 'A20', 'pos': 52, 'sort': 102 },
{ 'id': 3, 'code': 'A30', 'pos': 53, 'sort': 103 },
]
# (id, code)をキーとした辞書に格納
db_dict = {(db['id'], db['code']): db for db in db_data}
# 処理データのキー(id, code)と一致するDBデータを取得し、posを比較
for chk in chk_data:
key = (chk['id'], chk['code']) # 辞書のキーとなるタプル
db_match = db_dict.get(key) # 辞書からデータを取得
if db_match:
# posの比較
if chk['pos'] > db_match['pos']:
print(f"ID: {chk['id']}, Code: {chk['code']} - OVER")
else:
print(f"ID: {chk['id']}, Code: {chk['code']} - OK")
else:
print(f"ID: {chk['id']}, Code: {chk['code']} - DBデータが見つかりません")
# ID: 1, Code: A10 - OVER
# ID: 3, Code: A30 - OK
# ID: 4, Code: A40 - DBデータが見つかりません
# ID: 5, Code: A50 - DBデータが見つかりません