1
Python 스크립트에서 SQLite3 (txt 파일에서 가져 오는 데이터)에 새 테이블을 만들려고합니다. 열 머리글을 제공 할 SQL 명령으로 사용할 문자열을 만듭니다. 그러나이 문자열에 대한 변수를 cursor.execute()에 삽입하면 구문 오류가 발생합니다. 문제는, print()를 복사 한 다음 copy.execute에 붙여 넣으면 스크립트가 작동한다는 것입니다. 그러나이 동일한 스크립트를 다양한 txt 파일에 사용하고 싶기 때문에 파일의 열 머리글에 적응해야합니다.Python의 txt 파일에서 새 sqlite 데이터베이스 테이블 만들기
def CreateTable (daDB, daFile, daTableName): #Creates a table with column headers as first row of file
con=sqlite3.connect(daDB)
curs=con.cursor()
LinesList=FileReadIn(daFile)
Headers=LinesList[0]
HeadersString=""
for word in Headers:
HeadersString += word + ", "
DaHeadersString=HeadersString[0:-2]
daQuery="'create table " + daTableName + " (" + DaHeadersString + ")'"
print (daQuery)
curs.execute(daQuery)
con.commit()
con.close()
이 생성
CreateTableFromText ('animalsheaderstest.sqltdb','animals.txt','animalstable')
'create table animalstable (Owner, Name, Species)'
Traceback (most recent call last):
File "<pyshell#108>", line 1, in <module>
CreateTable ('animalsheaderstest.sqltdb','animals.txt','animalstable')
File "/Users/zeintawil/Zeins_Files/School/Senior/OPIM_399/python/practice/ReadInPrac.py", line 62, in CreateTable
curs.execute(daQuery)
OperationalError: near "'create table animalstable (Owner, Name, Species)'": syntax error
을 그러나, 나는 복사 직접 코드로 인쇄 (daQuery)의 값을 붙여 넣을 때, 그것을 작동합니다.
감사합니다. 그것은 저에게 사소한 것이 었습니다! –