valor - ¿Cómo puedo usar ejecutemany para insertar en MySQL una lista de diccionarios en Python?
limpiar diccionario python (1)
itemBank = []
for row in rows:
itemBank.append((
tempRow2[''Item_Name''],
tempRow1[''Item_Price''],
tempRow3[''Item_In_Stock''],
tempRow4[''Item_Max''],
getTimeExtra
)) #append data
q = """ insert ignore into TABLE1 (
Item_Name, Item_Price, Item_In_Stock, Item_Max, Observation_Date )
values (%s,%s,%s,%s,%s)
"""
try:
x.executemany(q, itemBank)
conn.commit()
except:
conn.rollback()
Espero que te ayude
Actualmente estoy usando MySQL y Python para raspar datos de la web. Específicamente, estoy raspando los datos de la tabla e insertándolos en mi base de datos. Mi solución actual funciona, pero creo que es extremadamente ineficiente y es muy probable que bloquee mi base de datos si no reescribo el código. Esto es lo que actualmente uso (código parcial):
itemBank = []
for row in rows:
itemBank.append((tempRow2,tempRow1,tempRow3,tempRow4)) #append data
#itemBank List of dictionaries representing data from each
row of the table. i.e.
(''Item_Name'':"Tomatoes",''Item_Price'':"10",''Item_In_Stock'':"10",''Item_Max'':"30")
for item in itemBank:
tempDict1 = item[0]
tempDict2 = item[1]
tempDict3 = item[2]
tempDict4 = item[3]
q = """ INSERT IGNORE INTO
TABLE1
(
Item_Name,
Item_Price,
Item_In_Stock,
Item_Max,
Observation_Date
) VALUES (
"{0}",
"{1}",
"{2}",
"{3}",
"{4}"
)
""".format(tempDict1[''Item_Name''],tempDict2[''Item_Price''],tempDict3[''Item_In_Stock''],
tempDict4[''Item_Max''],getTimeExtra)
try:
x.execute(q)
conn.commit()
except:
conn.rollback()
Ejecutar cada fila de la tabla es engorroso. He intentado usar executemany
, pero parece que no puedo encontrar la manera de acceder a los valores de los diccionarios correctamente. Entonces, ¿cómo puedo usar la executemany
aquí para insertar en la base de datos dada la estructura de mis datos?