본문 바로가기
MySql

MySQL Python MySQLdb 문제 (TypeError : % d 형식 : str이 아닌 숫자가 필요함)

by 베이스 공부 2020. 10. 10.
반응형

다음 삽입 작업을 시도하고 있습니다.

cursor.execute("""
                    insert into tree (id,parent_id,level,description,code,start,end)
                    values (%d,%d,%d,%s,%s,%f,%f)
                    """, (1,1,1,'abc','def',1,1)
                    )

내 MYSQL 테이블의 구조는 다음과 같습니다.

id int(255),
parent_id int(255),
level int(11),
description varchar(255),
code varchar(255),
start decimal(25,4),
end decimal(25,4)

그러나 프로그램을 실행할 때 오류가 발생합니다.

"파일"/usr/lib/pymodules/python2.6/MySQLdb/cursors.py ", 151 행, 실행 중 쿼리 = 쿼리 % db.literal (args)

유형 오류 : % d 형식 : str이 아닌 숫자가 필요합니다. "

 

해결 방법

 

형식 문자열은 실제로 일반적인 Python 형식 문자열이 아닙니다. 모든 필드에 항상 % s 를 사용해야합니다.


args가 목록 또는 튜플이면 % s를 쿼리에서 자리 표시 자 로 사용할 수 있습니다. args가 dict이면 % (name) s를 쿼리에서 자리 표시 자로 사용할 수 있습니다.

-> 즉, 여기서 % s 포맷터가 아니지만 자리 표시 자 입니다.

 

참조 페이지 https://stackoverflow.com/questions/5785154

 

 

반응형

댓글