1

我正在尝试使用 Python 将数据插入到带有列表的 MySQL 中。
该列表包含字符串和整数。
我无法使用 %s 进行字符串替换,也 % 不起作用。

def insert(self,data):
    db =  MySQLdb.connect(db=self.database,host=self.host,port=self.port,user=self.user,passwd=self.password)
    c=db.cursor()
    var_string = ', '.join('?' * len(data))
    query = 'INSERT INTO wmr200 (time, temp_in, temp_out, dewpoint, hum_in, hum_out, windspeed, wind_direction, windchill, rain_1h, rain_24h, rain_total, rel_pressure, abs_pressure, tendency, forecast) VALUES (now(), %s);' % var_string
    c.execute(query, data)

错误是:

文件“/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py”,第 159 行,在执行
查询 = 查询 % db.literal(args) 类型错误
:字符串格式化期间并非所有参数都转换

4

1 回答 1

2

产生异常的表达式:

query % db.literal(args)

要求每个. query_%sdb.literal(args)

然而query,您的函数生成的值恰好包含零格式字符串。

于 2012-04-28T12:58:48.367 回答