반응형

1. 시험환경

    ˙ 윈도우 10

    ˙ 파이썬 3.10

    ˙ mySQL 8.0.23 (x32)

 

2. 목적

    ˙ 파이썬 csv 라이브러리를 이용하여 csv 파일 데이터를 추출한다.

    ˙ 추출한 데이터를 pymysql 라이브러리를 이용하여 mysql DB에 저장한다.

 

3. 적용

    ① csv 데이터 파일 및 구조이다.

sample.csv
0.00MB

 

    ② mysql 스키마 및 테이블을 생성한다.

        - DB 스키마 : sample

        - 테이블명 : example

1
2
3
4
5
6
7
CREATE TABLE `example` (
  `nation` varchar(32) NOT NULL,
  `language` varchar(32) DEFAULT NULL,
  `money` varchar(32) DEFAULT NULL,
  `population` int DEFAULT NULL,
  PRIMARY KEY (`nation`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3
cs

 

    ③ pymysql 파이썬 라이브러리를 이용하여 mysql DB 연결 및 종료 코드를 작성한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import sys
import pymysql
 
 
def mysqlDbConnection(u, pw, h, p, d):
    try:
        conn = pymysql.connect(user = u, password = pw, host = h, port = p, database = d)
        print("DB Connection Success: {0}".format(h))
    except pymysql.Error as e:
        print("Error connecting to MySQL Platform : {}".format(e))
        sys.exit(1)
 
    return conn
 
 
def mysqlDbClose(_dbConn):
    try:
        _dbConn.close()
        print("DB Close Success")
    except pymysql.Error as e:
        print("Error closing from MySQL Platform")
        sys.exit(1)
cs

 

    ④ csv 파이썬 라이브러리를 이용하여 파일 데이터를 추출하고, mysql DB에 저장하는 코드를 작성한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import csv
import mysqlDbQuery
 
 
dbConn = mysqlDbQuery.mysqlDbConnection('root''1q2w3e''127.0.0.1'3306'sample')
cursor = dbConn.cursor()
 
 
file = open('./sample.csv','r', encoding='UTF8')
fReader = csv.reader(file)
 
for line in fReader:
    query = "INSERT INTO example VALUES ('{0}', '{1}', '{2}', {3})".format(line[0], line[1], line[2], line[3])
    cursor.execute(query)
 
file.close()
 
dbConn.commit() 
cursor.close()
mysqlDbQuery.mysqlDbClose(dbConn)
 
cs

 

4. 결과

    ˙ 프로그램을 실행하여 csv 추출 데이터가 DB에 저장되었는지 확인한다.

    ˙ pandas와 달리 title까지 데이터로 추출되는 것에 주의한다.

 

 

※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다 ※

반응형

+ Recent posts