어제에 이어서..
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
를 VALUES (%s, %s, %s, %s, %s, %s, %s, %s)
로 수정했다. 어제 ?
부분에서도 에러가 났었는데, 다른 거 구글링하다가 %s
로 써져있는 걸 보았다. 그때서야 세션 영상에서 PostgreSQL은 sqlite3와 다르게 ?
가 아니라 %로 변수 준다고 잠깐 언급했던게 생각났다. 기억하자.import psycopg2
host = '00'
user = '00'
password = '00'
database = '00'
conn = psycopg2.connect(
host=host,
user=user,
password=password,
database=database
)
cur = conn.cursor()
cur.execute("DROP TABLE IF EXISTS passenger;")
cur.execute("""CREATE TABLE passenger(
Id SERIAL PRIMARY KEY,
Survived INTEGER,
Pclass INTEGER,
Name VARCHAR(128),
Sex VARCHAR(12),
Age FLOAT,
aa INTEGER,
bb INTEGER,
Fare FLOAT
)
""")
conn.commit();
# 나머지 코드는 titanic.csv 의 데이터를 passenger 테이블로 전달할 수 있도록 자유롭게 작성해주시기 바랍니다.
import csv
f = open('경로', 'r', encoding='utf-8')
lines = csv.DictReader(f)
for line in lines:
i = list(line.items())
v1 = i[0][1]
v2 = i[1][1]
v3 = i[2][1]
v4 = i[3][1]
v5 = i[4][1]
v6 = i[5][1]
v7 = i[6][1]
v8 = i[7][1]
cur.execute("INSERT INTO passenger(Survived, Pclass, Name, Sex, Age, aa, bb, Fare) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)", (v1,v2,v3,v4,v5,v6,v7,v8))
conn.commit();
f.close()
Id
Serial start 1이 아니라 0부터 시작하도록 하는 방법 찾아 수정하기. Siblings/Spouses Aboard
, Parents/Children Aboard
이 두 칼럼명 insert 구문에서 자꾸 오류나서 일단 다른 코드 잘못된 부분 없는지 보려고 aa
, bb
로 바꿔서 돌려봤는데, 방법 찾아 수정하기. 그래도 어제보다 진전이 있었다, 헤헤. 재밌구만?