Рассмотрите возможность распаковки вашей коллекции словарей в кортежи ключ / значение, а затем параметризацию кортежа значений в цикле.Предполагая приведенную ниже структуру данных (список словарей):
scale_data_json["operations"] = [{'BMI': 0, 'BodyFat': 10,
'Entrytimestamp': '2018-01-21T19:37:47.821Z',
'MuscleMass': 50, 'OperationType': 'create',
'ServerTimestamp':'2018-01-21T19:37:47.821Z',
'Source':'bluetooth scale',
'Water':37, 'Weight':21},
{'BMI': 0, 'BodyFat': 10,
'Entrytimestamp': '2018-01-21T19:37:47.821Z',
'MuscleMass': 50, 'OperationType': 'create',
'ServerTimestamp':'2018-01-21T19:37:47.821Z',
'Source':'bluetooth scale',
'Water':37, 'Weight':21},
...]
Переберите каждый словарь, распакуйте значения с помощью zip
и затем свяжите их в cursor.execute
:
# PREPARED STATEMENT
sql = """INSERT INTO BodyComposition (BMI, BodyFat, Entrytimestamp,
MuscleMass, OperationType, ServerTimestamp,
Source, Water, Weight)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
"""
# LOOP, UNPACK, BIND PARAMS
for entry in scale_data_json["operations"]:
keys, values = zip(*entry.items())
cursor.execute(sql, values)
cnxn.commit()