- 论坛徽章:
- 0
|
环境说明:
OS:WinXP
Python3.2
MySQL 5.2
MySQLdb
#----------------------------------------------#
示例代码一:
import re
import os,sys,string
import time
import MySQLdb
……………… #省略
Datalist = []
Datalist1 = ['a','b','c']
Datalist2 = ['1','2']
Datalist = Datalist1 + Datalist2
Datalist = tuple(Datalist)
print (Datalist)
……………… #省略try:
sql ='''insert into queuelog (a,b,c,d,e) values (%s)''' % ','.join(Datalist)
print(sql)
……………… #省略
运行结果:
('a', 'b', 'c', '1', '2')
insert into queuelog (a,b,c,d,e) values (a,b,c,1,2)
#----------------------------------------------#
示例代码二:
import re
import os,sys,string
import time
import MySQLdb
……………… #省略
Datalist = ("'a'","'b'","'c'","'1'","'2'",)
……………… #省略
try:
sql ='''insert into queuelog (a,b,c,d,e) values (%s)''' % ','.join(Datalist)
print(sql)
……………… #省略
运行结果:
insert into queuelog (a,b,c,d,e) values (‘a’,‘b’,‘c’,‘1’,‘2’)
#----------------------------------------------#
以上两段示例代码,第二个能正常插入Mysql数据库中,而第一个会报SQL语法错误。将第一个示例中的sql改为如下格式:
sql = '''insert into queuelog (a,b,c,d,e) values ''',Datalist
运行结果:
('insert into queuelog (a,b,c,d,e) values', ('a', 'b', 'c', '1', '2'))
expected string or buffer
将序列数据插入数据库时,加了%s占位符后原字符型数据为何会改变?有没有什么方法能使示例一的sql结果和示例二相
同?另外Datalist是从日志中提取出来的,数据量比较大正式的格式如下所示:
('2012', 'Jun25', '10:04:46', 'qmgr[32541]', '9D00510600F6', 'aaa@163.com', '30859', 'bbb@263.com', 'sent')
|
|