Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- SW Expert Academy
- PYTHON
- leetcode
- 프로그래머스
- 편스토랑 우승상품
- 금융문자분석경진대회
- 파이썬
- 데이콘
- 프로그래머스 파이썬
- 더현대서울 맛집
- ubuntu
- Docker
- 캐치카페
- 백준
- 자연어처리
- 코로나19
- Kaggle
- ChatGPT
- 편스토랑
- github
- 맥북
- AI 경진대회
- Real or Not? NLP with Disaster Tweets
- Baekjoon
- dacon
- gs25
- hackerrank
- Git
- 우분투
- programmers
Archives
- Today
- Total
솜씨좋은장씨
[Python] flask와 mongoDB를 활용하여 REST API 만들기 1 - CSV 데이터를 불러와 mongoDB에 데이터 추가하기 본문
Programming/Python
[Python] flask와 mongoDB를 활용하여 REST API 만들기 1 - CSV 데이터를 불러와 mongoDB에 데이터 추가하기
솜씨좋은장씨 2020. 3. 29. 21:54728x90
반응형
1. 필요한 라이브러리 설치하기
pip install pymongo
pip install pandas
pip install tqdm
먼저 필요한 라이브러리를 설치합니다.
2. csv에서 데이터 불러와서 json 형태로 만들기
CSV는 지난 캐치 프로그램 과제를 할때 만들었던 파일을 그대로 활용했습니다.
[캐치카페] 현직자와 함께하는 프로그래밍 3회차 과제 도전기 - 1 (API 데이터 자동으로 추가하기)
먼저 영화 데이터를 추가하기위해서 실제 네이버 영화에서 데이터를 크롤링해서 추가해주었습니다. 현재상영작 : 네이버 영화 상영 중 영화의 예매율/평점/좋아요 순 정보 제공. movie.naver.com 크롤링 해와야하..
somjang.tistory.com
import pandas as pd
from tqdm import tqdm
movie_data = pd.read_csv("movie_data_from_naver_series.csv")
def convertStringToList(string):
data = string.split(',')
my_list = []
for dt in data:
my_list.append(dt.replace('"', '').replace("'", '').replace("[", "").replace("]", '').replace(" ", ''))
return my_list
def makeJsonList(movie_data):
json_list = []
for i in tqdm(range(len(movie_data['title']))):
json_template = { "title": list(movie_data['title'])[i],
"posterUrl": list(movie_data['posterUrl'])[i],
"screeningStatus": "open",
"advanceRate": list(movie_data['advanceRate'])[i],
"advanceRateRank": list(movie_data['advanceRateRank'])[i],
"visitorRating": list(movie_data['visitorRating'])[i],
"expertRating": list(movie_data['expertRatings'])[i],
"plot": list(movie_data['plot'])[i],
"genres": convertStringToList(list(movie_data['genres'])[i]),
"runtime": list(movie_data['runtime'])[i],
"cast": convertStringToList(list(movie_data['cast'])[i]),
"released": list(movie_data['release'])[i],
"director": list(movie_data['director'])[i]
}
json_list.append(json_template)
return json_list
data_list = makeJsonList(movie_data)
3. 만들어진 list와 pymongo를 활용하여 mongoDB에 데이터 추가하기
mongod --dbpath=data/db
mongoDB 서버를 실행합니다.
from pymongo import MongoClient
my_client = MongoClient("mongodb://localhost:27017/")
mydb = my_client['movie_flask_api_database']
mycol = mydb['movie_data']
data_list = makeJsonList(movie_data)
x = mycol.insert_many((data_list))
print(x.inserted_ids)
4. 잘 추가되었는지 확인해보기
4-1. 터미널에서
use movie_flask_api_db
db.movie_data.find().pretty()
4-2. Python 코드를 활용해서
my_doc = mycol.find().sort("advanceRate", -1)
for x in my_doc:
print(x)
예매율을 기준으로 내림차순으로 정렬하여 출력해보았습니다.
이제 이 DB를 활용하여
지난 캐치카페에서 현직자와 함께하는 프로그래밍 수업을 들으면서
강사님이 만들었던 영화정보 API를 직접 만들어서 그 API를 이 API로 대체하여 구현해보고자 합니다.
읽어주셔서 감사합니다!
'Programming > Python' 카테고리의 다른 글
[Python] List Comprehension과 리스트를 다루는 여러가지 방법들! (0) | 2020.04.02 |
---|---|
[Python] 2to3 를 통해 Python 2로 작성된 코드를 Python3로 쉽게 바꾸어보기! (2) | 2020.04.02 |
[Python] 두 개의 문자열 서로 바꾸기 (0) | 2020.03.28 |
[Python] 마스크 재고 API와 텔레그램으로 나만의 마스크 재고 알리미를 만들어보자! (1) | 2020.03.15 |
[Python] 공공api를 활용하여 내 주변 공적 마스크 판매처와 마스크 재고를 지도에 시각화해보자! (7) | 2020.03.14 |
Comments