Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como armazenar o dicionário python no mysql DB através do python


Em primeiro lugar, nunca construa consultas SQL brutas como essa. Jamais. É para isso que servem as consultas parametrizadas. Você está solicitando uma injeção de SQL ataque.

Se você deseja armazenar dados arbitrários, como, por exemplo, dicionários Python, deve serializar esses dados. JSON seria uma boa escolha para o formato.

No geral, seu código deve ficar assim:
import MySQLdb
import json

db = MySQLdb.connect(...)    
cursor = db.cursor() 

dic = {'office': {'component_office': ['Word2010SP0', 'PowerPoint2010SP0']}}
sql = "INSERT INTO ep_soft(ip_address, soft_data) VALUES (%s, %s)"

cursor.execute(sql, ("192.xxx.xx.xx", json.dumps(dic)))
cursor.commit()