Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment stocker le dictionnaire python dans la base de données mysql via python

Tout d'abord, ne construisez jamais de requêtes SQL brutes comme ça. Plus jamais. C'est à cela que servent les requêtes paramétrées. Vous avez demandé une injection SQL attaque.

Si vous souhaitez stocker des données arbitraires, comme par exemple des dictionnaires Python, vous devez sérialiser ces données. JSON serait un bon choix pour le format.

Dans l'ensemble, votre code devrait ressembler à ceci :

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()