TypeError:python需要一个整数
我有一个具有以下结构的数据库TypeError:python需要一个整数,python,pymysql,Python,Pymysql,我有一个具有以下结构的数据库 CREATE TABLE cdrdataTest( id int(11) NOT NULL AUTO_INCREMENT, acctid int(11) NOT NULL, session_time int(11) NOT NULL, revenue_time int(11) NOT NULL, expense_time int(11) NOT NULL, start_time datetime NOT NULL, rev
CREATE TABLE cdrdataTest(
id int(11) NOT NULL AUTO_INCREMENT,
acctid int(11) NOT NULL,
session_time int(11) NOT NULL,
revenue_time int(11) NOT NULL,
expense_time int(11) NOT NULL,
start_time datetime NOT NULL,
revenue_increment int(11) NOT NULL,
PRIMARY KEY(id)
) ;
下面是我尝试使用以下代码将数据插入Mysql数据库时返回并出错的查询:
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='',
db='cdrmonitoringdata')
cur = conn.cursor()
for lst in data:
q = "INSERT INTO cdrdataTest(acctid, session_time,
revenue_time,expense_time,start_time,revenue_increment) VALUES (%d, %d, %d,
%d,%d,%d )" %
(int(lst[0]),int(lst[1]),int(lst[2]),int(lst[3]),datetime.datetime(lst[4]),int(lst[5]))
错误如下
Traceback (most recent call last):
File "C:/Users/Mang123/PycharmProjects/readData/readDataFile.py", line 50, in <module>
insertDataIntoDatabase(data)
File "C:/Users/Mang123/PycharmProjects/readData/readDataFile.py", line 9, in insertDataIntoDatabase
q = "INSERT INTO cdrdataTest(acctid, session_time, revenue_time,expense_time,start_time,revenue_increment) VALUES (%d, %d, %d, %d,%d,%d )" %(int(lst[0]),int(lst[1]),int(lst[2]),int(lst[3]),datetime.datetime(lst[4]),int(lst[5]))
TypeError: an integer is required
Process finished with exit code 1
回溯(最近一次呼叫最后一次):
文件“C:/Users/Mang123/PycharmProjects/readData/readDataFile.py”,第50行,在
insertDataIntoDatabase(数据)
文件“C:/Users/Mang123/PycharmProjects/readData/readDataFile.py”,第9行,在insertDataIntoDatabase中
q=“在cdrdataTest(账户、会话、收入、支出、开始、收入增量)中插入值(%d、%d、%d、%d、%d、%d、%d),%d)”%(int(lst[0])、int(lst[1])、int(lst[2])、int(lst[3])、datetime.datetime(lst[4])、int(lst[5]))
TypeError:需要一个整数
进程已完成,退出代码为1
不要使用字符串插值。改用参数化查询。哪个错误?提供跟踪其中一个是datetime,而不是使用datatime占位符后的intEven。仍然获取错误。需要整数显示导致错误的数据
和lst
示例。不要使用字符串插值。改用参数化查询。哪个错误?提供跟踪其中一个是datetime,而不是使用datatime占位符后的intEven。仍然获取错误。需要整数显示导致错误的数据
和lst
示例