🧤 csv > mysql 업로드2

may_soouu·2020년 9월 18일
1

mysql

목록 보기
3/3

csv파일 첫 줄(컬럼)제거

data_reader = CSV.reader(in_file)
next(data_reader,None)
for row in data_reader:
	menu_name = row[0]
	Menu.objects.create(name = menu_name)

next(data_reader, None) 입력하면 첫줄 컬럼 제거 됨

foreign key 설정

data_reader = CSV.reader(in_file)
next(data_reader,None)
for row in data_reader:
	if row[0]:
    	    menu_name = row[0]
        category_name = row[1]
        menu_id = Menu.objects.get(name = menu_name).id
        
        Category.objects.create(name=category_name, menu_id = menu_id)
        category_id = Category.objects.get(name=category_name).id
         
       

한 컬럼에 데이터가 여러개 일 때

콤마 기준으로 split하고 한 줄씩 넣는 방법

data_reader = CSV.reader(in_file)
next(data_reader,None)
for row in data_reader:
	if row[0]:
    	    menu_name = row[0]
        category_name = row[1]
        menu_id = Menu.objects.get(name = menu_name).id
        
        #Category.objects.create(name=category_name, menu_id = menu_id)
        #category_id = Category.objects.get(name=category_name).id
        
        drinks = row[2].split(',') 
        #리스트안에 여러개로 들어가게 됨  그리고 for문 돌리기!! 
        # ['','',''] 이런 형태
        for drink in drinks:
        	if drink: 
        	    Drink.objects.create(name=drink, menu_id = menu_id, category_id = category_id)
        # if절은 drink라는 테이블에 정보가 존재 할 때만 들어가도록 하는 if문    
       

만약 매번 코드 돌리는 게 번거로우면 위의 내용을 함수화 하기 !!
그리고 선언만 하면 된다
Ex. 함수명이 insert_product이면
insert_product()
로 입력하기 ~!

profile
back-end 개발자

1개의 댓글