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