반응형
MySQLDB Python 삽입 %d 및 %s
전구체:
MySQL Table created via:
CREATE TABLE table(Id INT PRIMARY KEY NOT NULL, Param1 VARCHAR(50))
기능:
.execute("INSERT INTO table VALUES(%d,%s)", (int(id), string)
출력:
TypeError: %d format: a number is required, not a str
무슨 일인지, 왜 명령을 실행할 수 없는지 잘 모르겠습니다.이것은 파이썬에서 MySQLdb를 사용하는 것입니다..execute
커서 개체에서 수행됩니다.
편집:
질문:Python MySQLdb 문제(TypeError: %d 형식: str이 아닌 숫자가 필요함)에서 다음을 사용해야 한다고 말합니다.%s
모든 분야에 대하여이게 왜 일까요?이 명령이 작동하는 이유는 무엇입니까?
.execute("INSERT INTO table VALUES(%s,%s)", (int(id), string)
쿼리를 실행하는 동안 전체 쿼리가 문자열 형식이어야 하므로,%s
사용해야 할...
쿼리가 실행되면 정수 값이 유지됩니다.
그러니까 대사가.
.execute("INSERT INTO table VALUES(%s,%s)", (int(id), string))
설명은 여기 있습니다.
형식 문자열은 일반적인 Python 형식 문자열이 아닙니다.항상 모든 필드에 %s을(를) 사용해야 합니다.
저는 dev.mysql.com 에서 해결책을 찾았습니다.간단히 말해서, a를 사용합니다.dict
, 한푼도tuple
의 두 번째 매개변수에서.execute()
:
add_salary = ("INSERT INTO salaries "
"(emp_no, salary, from_date, to_date) "
"VALUES (%(emp_no)s, %(salary)s, %(from_date)s, %(to_date)s)")
data_salary = {
'emp_no': emp_no,
'salary': 50000,
'from_date': tomorrow,
'to_date': date(9999, 1, 1),
}
cursor.execute(add_salary, data_salary)
당신이 놓쳤군요.'%'
문자열 형식으로
"(INSERT INTO table VALUES(%d,%s)"%(int(id), string))
언급URL : https://stackoverflow.com/questions/20463333/mysqldb-python-insert-d-and-s
반응형
'programing' 카테고리의 다른 글
옵션 페이지에 메타박스 이미지 업로드 옵션 추가 (0) | 2023.11.06 |
---|---|
어떤 립을 쓸까요?libmariadbc 클라이언트 또는 libmysql 클라이언트? (0) | 2023.11.06 |
왜 git가 post-pull merge commit 메시지를 표시합니까? (0) | 2023.11.06 |
평균 스택: 각도 라우팅 대 급행 라우팅 (0) | 2023.11.06 |
HTML로 전화를 걸기 위해 아이폰이나 안드로이드 폰에서 전화번호를 클릭할 수 있도록 하는 방법이 있습니까? (0) | 2023.11.06 |