Давайте лучше отдельно укажу что как, а все вместе вы уже попробуете сами собрать.
1. если у вас есть файл data.json, то чтобы перевести из него данные в python объекты, достаточно использовать json.load()
with open('data.json') as f:
data = json.load(f)
В data у вас будет список словарей, а не словарь. Поэтому надо будет делать обход списка.
Если вы хотите вытащить только title и author2.name, то стоит учитывать, что поле author2 есть далеко не во всех записях, так что это поле стоит делать кастомным
class Author2(BaseModel):
name: str
class Book(BaseModel):
title: str
author2: Author2 | None
а дальше уже обходим список с распаковкой словарей в конструктор класса Book
books = [Book(**book) for book in data]