參數不夠,我試圖與Tornado's database wrapper執行查詢,這樣的 -類型錯誤:對格式字符串
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'])
)
)
但總是得到標題中的錯誤。這是回溯 -
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
不知道我在做什麼錯。
你的意思是像字典?對不起,如果我聽起來像一個菜鳥。 – 2012-04-06 16:25:17
不,我的意思是不用'db.execute_lastrowid(「query」,(a,b,c))','db.execute_lastrowid(「query」,a,b,c)''。 – Amber 2012-04-06 16:27:17
明白了。這工作。謝謝。 :)我看到'參數',因爲我認爲它將是一個單一變量,所有數據都是元組,所以感到困惑。 – 2012-04-06 16:28:31