data_list = [
{'id': 1, 'code': 'A', 'name': 'apple'},
{'id': 1, 'code': 'B', 'name': 'banana'},
{'id': 2, 'code': 'A', 'name': 'cherry'},
{'id': 2, 'code': 'B', 'name': 'doughnut'}
]
bind_values = {}
conditions = []
for i, item in enumerate(data_list, start=1):
bind_values[f'id_{i}'] = item['id']
bind_values[f'code_{i}'] = item['code']
conditions.append(f'(id = :id_{i} AND code = :code_{i})')
conditions = ' OR '.join(conditions)
print(bind_values)
# {'id_1': 1, 'code_1': 'A', 'id_2': 1, 'code_2': 'B', 'id_3': 2, 'code_3': 'A', 'id_4': 2, 'code_4': 'B'}
print(conditions)
# (id = :id_1 AND code = :code_1) OR (id = :id_2 AND code = :code_2) OR (id = :id_3 AND code = :code_3) OR (id = :id_4 AND code = :code_4)