Gewusst wie: speichern von python-dictionary in die mysql DB über python
Ich versuche zu speichern, die im folgenden Wörterbuch in der mysql DB konvertieren das Wörterbuch in einen string und dann versucht einzufügen, aber ich bekomme folgende Fehlermeldung. Wie kann das gelöst werden, oder gibt es irgendeine andere Möglichkeit, um zu speichern, die ein Wörterbuch in der mysql DB?
dic = {'office': {'component_office': ['Word2010SP0', 'PowerPoint2010SP0']}}
d = str(dic)
# Sql query
sql = "INSERT INTO ep_soft(ip_address, soft_data) VALUES ('%s', '%s')" % ("192.xxx.xx.xx", d )
soft_data is a VARCHAR(500)
Fehler:
Ausführung exception (1064, "Sie haben einen Fehler in Ihrer SQL-syntax; Lesen Sie im Handbuch, das entspricht Ihrer MySQL-server-version für den richtigen syntax
in der Nähe von 'office': {'component_office': ['Word2010SP0', 'PowerPoint2010SP0' at line 1")
Anregungen oder Hilfe bitte?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erste von allen, nicht immer konstruieren raw-SQL-Abfragen so. Nie und nimmer. Dies ist, was parametrisierten Abfragen sind für. Haben Sie Fragen für eine SQL-injection Angriff.
Wenn Sie möchten, speichern Sie beliebige Daten, wie zum Beispiel Python dictionaries, sollten Sie serialisieren von Daten. JSON wäre gute Wahl für das format.
Insgesamt Ihr code sollte wie folgt Aussehen:
Ändern Sie Ihren code wie folgt:
Versuchen Sie dies:
Ändern
db
undtable
um die Werte, die Sie brauchen.d
imINSERT
zudic
Ist es eine gute Idee zu reinigen Ihre Eingaben, und '.format ist nützlich, wenn Sie benötigen, verwenden die gleiche variable mehrfach in einer Abfrage. (Nicht, dass Sie für dieses Beispiel)
Wenn Sie nicht verwenden, cur.escape(variable), die Sie benötigen, schließen Sie den Platzhalter {} in Anführungszeichen.