Python 초기 파일 만들어서 MongoDB에 저장시키기

장보운·2022년 5월 25일
0
post-thumbnail

기억하기 위한 나만의 기록장!!

안녕하세요! 오늘은 python으로 초기 파일을 mongoDB에 저장 시켜보기를 해보도록 하겠습니다 🤩

D드라이브에 txt 파일을 만들어주기 😁

json 구조로 영화관련된 txt 파일을 간단하게 만들어보았어요~

MongoDB에 저장 시키기 🙂

  1. pymongo import 해주기
    🌟 파이 몽고란 파이썬 몽고 디비 드라이버
    🌟 pip install pymongo 로 설치해주기!
  2. mongo라는 파이썬 파일을 만들어서 MongoDB랑 연동하는 필요한 쿼리와 log 보여주는 함수 import
    👏 쿼리문은 "하루에 하나" 님의 블로그에서 참조

    mongo.py

  3. init_movie()라는 mongoDB에 insert 해주는 기능을 가진 함수 생성하기
from pymongo import MongoClient
from mongo import insert_item_many, find_item_one, log_print
import json

host = "localhost"
port = "27017"

def init_movie(logger=None):   
    mongo = MongoClient(host, int(port))
    isExist=find_item_one(mongo, None, 'test', 'movie')
    if isExist is not None:
        len_data=len(isExist)
        log_print(f'무비 데이터가 이미 존재합니다!!!! ({len_data})', logger)
    else:
        log_print(f'초기 무비 데이터를 설정합니다...')
        # 초기설정 파일 읽기
        json_data=None
        with open('D://test-movie.txt', 'r', encoding='UTF-8') as f:
            json_data=json.load(f)
            log_print(f"초기 무비 데이터 설정파일(movie) 로드 중...", logger)           
            result = insert_item_many(mongo, json_data, 'test', 'movie')
            log_print(f'초기 무비 데이터 설정 파일 설정 완료! ({result})', logger)
# 초기 설정  
init_movie()

MongoDB 확인 👌

log 샷

mongoDB 샷

+ 초기 파일이 없을 수도 있을 경우를 대비하여, 변수에 미리 데이터를 선언해보기 🤛

def init_movie(logger=None):
    data =[
                {
                    "id": "1",
                    "movie": "범죄도시2", 
                    "channels":
                    [
                        {
                            "cid": "OCN1"
                        },
                        {
                            "cid": "OCN2"
                        },
                        {
                            "cid": "OCN3"
                        }
                    ]
                },
                {
                    "id": "2",
                    "movie": "닥터스트레인지2", 
                    "channels":
                    [
                        {
                            "cid": "SCREN1"
                        },
                        {
                            "cid": "SCREN2"
                        },
                        {
                            "cid": "SCREN3"
                        }
                    ]
                }
            ]
 
    mongo = MongoClient(host, int(port))
    isExist=find_item_one(mongo, None, 'test', 'movie')
    if isExist is not None:
        len_data=len(isExist)
        log_print(f'무비 데이터가 이미 존재합니다!!!! ({len_data})', logger)
    else:
        log_print(f'초기 무비 데이터를 설정합니다...')
        # 초기설정 파일 읽기
        json_data=None
        with open('D://test-movie.txt', 'r', encoding='UTF-8') as f:
            json_data=json.load(f)
            
        if json_data is None:
            log_print(f'초기 무비 데이터 설정파일(movie)이 존재 하지 않습니다.', logger)
            result = insert_item_many(mongo, data, 'test', 'movie')
            log_print(f'디폴트 무비 데이터로 설정 완료! ({result})', logger)
        else: 
            log_print(f"초기 무비 데이터 설정파일(movie) 로드 중...", logger)           
            result = insert_item_many(mongo, json_data, 'test', 'movie')
            log_print(f'초기 무비 데이터 설정 파일 설정 완료! ({result})', logger)   

# 초기 설정            
init_movie()
profile
호기심이 많은 개발자

0개의 댓글