문자열 형식을 사용하여 문자열 배열에서 일부 문자열을 삽입하려고합니다.파이썬 문자열 형식 : 단일 인용 부호 문제
하지만 어떤 이유로 파이썬은 첫 번째 % s에 원하는 문자열을 채우지 만 작은 따옴표로 묶습니다.
이 동작을 방지하기위한 명시적인 방법이 있습니까?
예 :
cursor.executemany("INSERT INTO schema.myTable_%s_name (col1, col2, col3, col4, col5) VALUES (%s, NULLIF(%s,'None')::decimal, NULLIF(%s,'None')::decimal, %s, NULLIF(%s,'None')::int)", myString[0:len(myString)])
예상되는 동작은 테이블 이름 schema.myTable_000b_name
이되고 있지만, 파이썬은 자연스럽게 실행에서 SQL을 방지 schema.myTable_'000b'_name
를 기록한다는 것입니다 :
myString = [['000b',
'1',
'Text1',
'1.74',
'Text2',
'None'],
['000b',
'1',
'TextA',
'12.92',
'TextB',
'None']]
나는 다음과 같은 실행
. 작은 따옴표를 삽입하지 않으려면 어떻게 지정할 수 있습니까?
이봐, 작은 바비 테이블이 호출되면 데이터베이스를 다시 원했습니다. 'opts = {'table ':'innocuous_table ','value ': '10; DROP DATABASE PROD; '}'. 또한 사전 리터럴은 Python이 아닌 JavaScript에서 가져온 것입니다. – 9000
자바 스크립트 노트 주셔서 감사합니다, 너무 날카로운 아니 었어. 형식 지정은 내부적으로 항상 문제가되지 않으며 (my_array가 아니라 your_array가 호출 된 이후) 거의 모든 형식화 방법으로 동일하게 적용됩니다. – Roelant