Как утверждает @shmee, вам нужно использовать что-то вроде executemany
и параметризировать свои значения вместо использования format
, что уязвимо для внедрения SQL.
Я бы изменил ваш код следующим образом:
def insert_sample_data(self, values): # added self since you are referencing it below
with self.con.cursor() as cur:
sql = "insert into sampletable values (%s, %s, %s)" # Use %s for parameters
cur.executemany(sql, values) # Pass the list of tuples directly
self.con.commit()
list1 = [(1100, 'abc', '{"1209": "Y", "1210": "Y"}'), (1100, 'abc', None)]
self.insert_sample_data(list1) # pass the list directly