
정답 코드
target_movie = db.movies.find_one({'title':'가버나움'})
target_star = target_movie['star']
movies = list(db.movies.find({'star':target_star}))
for movie in movies:
print(movie['title'])
위 정답코드처럼 마지막 print로 출력할 때 for 문으로 돌려주지 않고,
target_movie = db.movies.find_one({'title':'가버나움'})
target_star = target_movie['star']
movies = list(db.movies.find({'star':target_star}))
print(movie['title']
로 출력했을 때 오류가 나옵니다.
이게 제목으로 출력이 아닌 그 전 단계인 movies 자체를 출력할때는
for문 없이 바로 print(movies)로 출력 시 정답처럼은 아니지만 [{값}, {값}] 으로 나열되서 출력은 되는데
[{'title': '그린 북', 'rank': '02', 'star': '9.59'}, {'title': '가버나움', 'rank': '03', 'star': '9.59'}]
▲ for 문 없이 바로 print(movies)로 출력
{'title': '그린 북', 'rank': '02', 'star': '9.59'}
{'title': '가버나움', 'rank': '03', 'star': '9.59'}
▲ for 문으로 돌리고 출력 시
제 짧은 생각으로는 위처럼 그냥 값이 출력되는 방식만 다르다고 생각해서 for 문 없이 print(movies['title']) 로 실행해봤더니 오류가 나왔습니다. 하나씩 출력하느냐, 나열해서 한번에 출력하느냐의 차이밖엔 없는 것 같은데 왜 하나는 출력이 되고 하나는 안되는 걸까요?
질문이 진도와 상관없는 질문인 것 같긴한데, 너무 궁금해서 질문합니다!
from pymongo import MongoClient
client = MongoClient('mongodb+srv://test:sparta@cluster0.tblhp.mongodb.net/Cluster0?retryWrites=true&w=majority')
db = client.dbsparta
target_movie = db.movies.find_one({'title':'가버나움'})
target_star = target_movie['star']
movies = list(db.movies.find({'star':target_star}))
print(movies['title'])
▲ 오류나는 코드 전체
