Example #1
0
def store_movies(year):
    print(f'storing-----------{year}')
    with open(f'./data/movie_{year}.json', 'r') as fp:
        movies = json.load(fp)

    # delete stored movies
    movies_year = Movie.objects.filter(release_date__year=year)
    movies_year.delete()
    # using bulk
    to_db_movies = []
    for mv in tqdm(movies):
        movie = Movie()
        movie.pk = mv['id']
        movie.title_en = mv['original_title']
        movie.title_ko = mv['title']
        movie.rate = mv['vote_average']
        movie.rate_people_count = mv['vote_count']
        movie.poster_path = mv['poster_path']
        movie.description = mv['overview']
        movie.release_date = datetime.datetime.strptime(
            mv['release_date'], '%Y-%m-%d')
        to_db_movies.append(movie)

    div = 100
    to_db_movies_batch = []
    for i in range(len(to_db_movies) // div + 1):
        to_db_movies_batch.append(to_db_movies[i * div:(i + 1) * div])

    for idx, batch in enumerate(to_db_movies_batch):
        print(round(idx / len(to_db_movies_batch), 2), end='|')
        temp = Movie.objects.bulk_create(batch)
    # add genre
    mgs = []
    for mv in movies:
        for gid in mv['genre_ids']:
            mg = MG()
            mg.movie_id = mv['id']
            mg.genre_id = gid
            mgs.append(mg)
    temp = MG.objects.bulk_create(mgs)