Ich versuche, eine Abfrage mit dem Tornado's database wrapper, wie dies auszuführen -Typeerror: nicht genügend Argumente für Formatstring
p_id = db.execute_lastrowid("""INSERT INTO `gplaces`.`place`
(`gid`, `name`, `reference`, `lat`, `long`, `vicinity`)
VALUES (%s, %s, %s, %s, %s, %s)""",
(
str(place['id']),
str(place['name']),
str(place['reference']),
float(place['geometry']['location']['lat']),
float(place['geometry']['location']['lng']),
str(place['vicinity'])
)
)
Aber immer bekommen die Fehler im Titel. Hier ist die Traceback -
Traceback (most recent call last):
File "insertbs.py", line 38, in <module>
str(place['vicinity'])
File "/home/bibhas/Works/yodl/database.py", line 145, in execute_lastrowid
self._execute(cursor, query, parameters)
File "/home/bibhas/Works/yodl/database.py", line 207, in _execute
return cursor.execute(query, parameters)
File "/usr/lib/pymodules/python2.7/MySQLdb/cursors.py", line 159, in execute
query = query % db.literal(args)
TypeError: not enough arguments for format string
Nicht sicher, was ich falsch mache.
Sie meinen wie ein Wörterbuch? Tut mir leid, wenn ich wie ein Noob klingen. –
Nein, ich meine wie anstelle von 'db.execute_lastrowid (" Abfrage ", (a, b, c))', tun 'db.execute_lastrowid (" Abfrage ", a, b, c)'. – Amber
Bekam es. Das hat funktioniert. Vielen Dank. :) Ich war verwirrt, da ich "Parameter" sah, da ich dachte, dass es eine einzige Variable mit allen Daten als Tupel sein wird. –