Python CSV 적용

Jinsung·2021년 12월 1일
0

기본 CSV 적용방식

import os
import django
import csv

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "FRA_WE_BACK.settings")
django.setup()

from products.models import MainCategory, SubCategory, Product, Image

CSV_PATH = '/Users/jinsungpark/FRA-WE-TAK/27-1st-FRA-WE-TAK-backend/csv/images.csv'

with open(CSV_PATH, newline='') as csvfile:
    data_reader = csv.DictReader(csvfile)
    for row in data_reader:
        print(row)
        Image.objects.create(
            image = row['image'],
            product_id = row['product_id']
        )

filter 사용

1,2
2,4
3,5
4,1
5,2
import csv
from product.models import *
# 필요 모듈을 import합니다.

hand = open('data.csv')
reader = csv.reader(hand)
# csv 파일을 읽고 변수에 저장합니다.


for row in reader:
    a = Product.objects.filter(id=row[0])
    a.update(category_id=row[1])
    # id가 첫번째 열 값인 객체의 category_id를 두번째 열의 값으로 업데이트합니다.
# 이 작업을 각 행마다 반복합니다.

주의할 점

Foreign Key를 가지는 데이터는 원본 데이터가 먼저 데이터베이스에 등록되어야함!

Foregin_key 입력

 CSV_PATH = './CSV/modelversionline.csv'

 with open(CSV_PATH, newline='') as csvfile:
     data_reader = csv.DictReader(csvfile)

     for row in data_reader:
         print(row)
         ModelVersionLine.objects.create(
             model = Model.objects.get(id=row['model_id']),
             version = Version.objects.get(id=row['version_id']),
             line = Line.objects.get(id=row['line_id']),
             spec = Spec.objects.get(id=row['spec_id']),
             dimension = Dimension.objects.get(id=row['dimension_id'])
         )

0개의 댓글