insertion – Python MySQLdb issues (TypeError: %d format: a number is required, not str)
insertion – Python MySQLdb issues (TypeError: %d format: a number is required, not str)
The format string is not really a normal Python format string. You must always use %s
for all fields.
refer official document:
If args is a list or tuple, %s can be used as a placeholder in the query. If args is a dict, %(name)s can be used as a placeholder in the query.
-> that is: here %s
is NOT formatter, but is a placeholder
I got the same error, but it was for a different reason. The problem was that the string included a % and that confused Python:
TemplateStr = [....] % discount rate [....] %s and %s
print TemplateStr % (abc, def)
Python interpreted that % discount as %d and kept complaining because I was feeding it a string (abc), not a number.
It took me a long tome to figure it out!
(The solution is to type %% instead of %.)
insertion – Python MySQLdb issues (TypeError: %d format: a number is required, not str)
try this :
cursor.execute(
insert into tree (id,parent_id,level,description,code,start,end)
values (%s,%s,%s,%s,%s,%s,%s)
%(1,1,1,abc,def,1,1)
)
Related posts