Skip to content

Commit 2acc956

Browse files
committed
PCC13 pavelekshin add exception handling in csv reader
1 parent 165763c commit 2acc956

File tree

2 files changed

+13
-9
lines changed

2 files changed

+13
-9
lines changed

13/pavelekshin/.directors.py.un~

11.4 KB
Binary file not shown.

13/pavelekshin/directors.py

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,14 @@ def get_movies_by_director():
1616
reader = csv.DictReader(f)
1717
d = defaultdict(list)
1818
for row in reader:
19-
director = row["director_name"]
20-
title = row["movie_title"].replace("\xa0", "")
21-
year = row["title_year"]
22-
score = float(row["imdb_score"])
23-
if director:
24-
d[director].append(Movie(title=title, year=year, score=score))
19+
try:
20+
director = row["director_name"]
21+
title = row["movie_title"].replace("\xa0", "")
22+
year = int(row["title_year"])
23+
score = float(row["imdb_score"])
24+
except ValueError:
25+
continue
26+
d[director].append(Movie(title=title, year=year, score=score))
2527
return d
2628

2729

@@ -39,12 +41,14 @@ def get_average_scores(directors):
3941
)
4042
return sd
4143

44+
4245
def _year_sort(movies):
4346
for count, movie in enumerate(movies):
44-
if not int(movie.year) > MIN_YEAR:
45-
del (movies[count])
47+
if not movie.year > MIN_YEAR:
48+
del movies[count]
4649
return movies
4750

51+
4852
def _calc_mean(movies):
4953
"""Helper method to calculate mean of list of Movie namedtuples"""
5054
score = 0
@@ -57,7 +61,7 @@ def print_results(directors):
5761
"""Print directors ordered by highest average rating. For each director
5862
print his/her movies also ordered by highest rated movie.
5963
See http://pybit.es/codechallenge13.html for example output"""
60-
directors = dict(list(directors.items())[:10])
64+
directors = dict(list(directors.items())[:20])
6165
fmt_director_entry = "{counter:02}. {director:<52} {avg}"
6266
fmt_movie_entry = "{year} {title:<50} {score}"
6367
sep_line = "-" * 60

0 commit comments

Comments
 (0)