私はこのように、Tornado's database wrapperでクエリを実行しようとしている -はTypeError:フォーマット文字列のための十分な引数
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
私が間違っていることがわかりません。
あなたは辞書のような意味ですか?申し訳ありませんが、私は騒ぎのように鳴っています。 –
いいえ、db.execute_lastrowid( "query"、(a、b、c)) 'を実行する代わりに、' db.execute_lastrowid( "query"、a、b、c) 'を実行します。 – Amber
ありがとうございます。それはうまくいった。ありがとう。 :)タプルとしてすべてのデータを持つ単一の変数になると思ったので、私は 'parameters'を見て混乱しました。 –