Ich benutze Django cursor.execememany für eine Weile jetzt und ich wollte etwas cleading tun.Django cursor.executemany Parameter
Auf dieser Stackoverflow-Seite habe ich gelesen, dass es eine schlechte Idee ist, den String-Formatierungsoperator zu verwenden und ein Fragezeichen zu verwenden. How to use variables in SQL statement in Python?
Jedoch, wenn ich diese verwenden in meinem Programm bekomme ich einen Fehler:
TypeError: not all arguments converted during string formatting
Dies ist der Code, den ich schrieb:
from django.db import connection
values = ((1, "john"), (2, "robert"), (3, "angela"))
cursor = connection.cursor()
query = "REPLACE INTO names (id, name) VALUES (?, ?)"
cursor.executemany(query, values)
Wenn ich nur ersetzen, die ?
mit %s
es funktioniert wie erwartet.
Eine andere Sache (die mich begann zu suchen) ist, dass PyCharm mir einen Fehler gibt, wenn Sie %s
verwenden.
Dies ist nicht das Hauptproblem, aber ich bin mir nicht sicher, ob dies einen Unterschied machen könnte.
Was ich bin mit
- Python 2.7
- Django 1.4
- MySql
Ich wollte nur Dinge bekommen aufgeräumt da PyCharm einen Fehler geben, wenn die '% s' Platzhalter mit –
@JohanVergeer ja, sicher, um das zu bekommen. Vielen Dank. – alecxe
@JohanVergeer okay, aktualisiert mit dem, was an meinem Ende passiert. Ich hoffe, das hilft. – alecxe