2010-04-09 42 views
7

Tengo un objeto dict. Me deshice de los datos utilizando la siguiente:Forma más rápida de volcar el objeto del diccionario (dict) de Python a una tabla MySQL?

for alldata in data: # print all data to screen 
    print data[alldata] 

Cada campo tenía corchetes [valores '' Ninguno de valores nulos y date.datetime para los valores de fecha] y.

¿Cómo descargo este dict a la tabla MySQL? ¡Gracias!

datos de impresión muestra algo como esto:

{'1': ['1', 'K', abc, 'xyz', None, None, None], '2': ['2', 'K', efg, 'xyz', None, None, None], '3': ['3', 'K', ijk, 'xyz', None, None, None]} 

Cómo insertar estos datos en MySQL?

Respuesta

11

Asumiendo que tiene MySQLdb (MySQL-python) instalado:

sql = "INSERT INTO mytable (a,b,c) VALUES (%(qwe)s, %(asd)s, %(zxc)s);" 
data = {'qwe':1, 'asd':2, 'zxc':None} 

conn = MySQLdb.connect(**params) 

cursor = conn.cursor() 
cursor.execute(sql, data) 
cursor.close() 

conn.close() 
+0

impresión de pantallas de datos algo como esto: { '1 ': [' 1 ',' K ', abc,' xyz ', Ninguno, Ninguno, Ninguno],' 2 ': [' 2 ',' K ', efg,' xyz ', Ninguno, Ninguno, Ninguno], '3': ['3', 'K', ijk, 'xyz', None, None, None]} ¿Cómo insertar estos datos en MySQL? – ThinkCode

+0

sql = "INSERT INTO mytable (a, b, c, d, e, f, g) VALORES (% s,% s,% s,% s,% s,% s,% s);" ... cursor.executemany (sql, list (data)) ... – newtover

1

Este es un posible duplicado, o puede ser respondida por este post Using a Python dict for a SQL INSERT statement

Sin embargo, para responder a su pregunta, he publicado esto una en la otra pregunta y estoy volver a colocar aquí también :

def ins_query_maker(tablename, rowdict): 
keys = tuple(rowdict) 
dictsize = len(rowdict) 
sql = '' 
for i in range(dictsize) : 
    if(type(rowdict[keys[i]]).__name__ == 'str'): 
     sql += '\'' + str(rowdict[keys[i]]) + '\'' 
    else: 
     sql += str(rowdict[keys[i]]) 
    if(i< dictsize-1): 
     sql += ', ' 
query = "insert into " + str(tablename) + " " + str(keys) + " values (" + sql + ")" 
print(query) # for demo purposes we do this 
return(query) #in real code we do this 

Para un diccionario

tab = {'idnumber': 1, 'fname': 'some', 'lname': 'dude', 'dob': '15/08/1947', 'mobile': 5550000914, 'age' : 70.4} 

obtenemos el resultado que el ScreenSh ot a continuación muestra. Tenga en cuenta que este es un ejemplo escueto y necesita comprobaciones de validez, y se puede modificar para actualizaciones masivas (usando un diccionario de dicts), etc.

output of the code mentioned above

Cuestiones relacionadas