[SQL] Python에서 PostgreSQL로 CSV File execute하기

CSV File 준비

  • 유명한 ‘titanic.csv’을 DB에 옮겨볼 것이다.

스크린샷 2021-09-15 00 10 03

psycopg2 설치

1
2
$ pip install psycopg2
$ pip install psycopg2-binary # 위 install이 진행되지 않을 시 실행

Postgres 연결

  • 계정 생성 후 연결한다.
1
2
3
4
5
6
7
8
9
import psycopg2

conn = = psycopg2.connect(
    host = 'chunee.db.elephantsql.com'
    user = 'fqislexi'
    password = '*****'
    database = 'fqislexi'

cur = connection.cursor() # 커서 생성

Table 생성

1
2
3
4
5
6
7
8
9
10
11
12
cur.execute("DROP TABLE IF EXISTS passenger;") # 만약 passenger table이 있다면 삭제

cur.execute("""CREATE TABLE passenger (
                Survived INT,
                Pclass INT,
                Name VARCHAR(128),
                Sex VARCHAR(12),
                Age FLOAT,
                SSAboard INT,
                PCAboard INT,
                Fare FLOAT);
			""")

데이터 삽입

1
2
3
4
5
6
7
8
9
10
with open('titanic.csv', 'r') as f:
    reader = csv.reader(f)
    next(reader) # Skip the header row.
    for row in reader:
        cur.execute(
        "INSERT INTO passenger (Survived, Pclass, Name, Sex, Age, SSAboard, PCAboard, Fare) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)",
        row
        )

connection.commit()

확인

스크린샷 2021-09-15 00 22 45

survived pclass name sex age ssaboard pcaboard fare
0 3 Mr. Owen Harris Braund male 22.0 1 0 7.25
1 1 Mrs. John Bradley (Florence Briggs Thayer) Cumings female 38.0 1 0 71.2833
1 3 Miss. Laina Heikkinen female 26.0 0 0 7.925
1 1 Mrs. Jacques Heath (Lily May Peel) Futrelle female 35.0 1 0 53.1
0 3 Mr. William Henry Allen male 35.0 0 0 8.05
  • 성공적으로 전송된 것을 확인할 수 있다.
0%