Po pierwsze, nigdy nie twórz takich zapytań surowego SQL. Nigdy przenigdy. Do tego służą zapytania parametryczne. Pytasz o wstrzyknięcie SQL atak.
Jeśli chcesz przechowywać dowolne dane, jak na przykład słowniki Pythona, powinieneś je serializować. JSON byłby dobrym wyborem dla formatu.
Ogólnie twój kod powinien wyglądać tak:
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()