Я беру курс cs50 ai python. Я пытался запустить код, который включал большие файлы .csv, чтобы cs50 ide отображал сообщение «убит» и не запускался. Он работал нормально с небольшими файлами csv. поэтому я скопировал то, что у меня было до сих пор, в визуальную студию. VS загружает большие файлы CSV без проблем, но дает мне ошибку «объект 'set' не подлежит подписке»
прямо здесь
a_id = names[source.lower()]["id"]
так были определены имена
# Maps names to a set of corresponding person_ids
names = {}
# Maps person_ids to a dictionary of: name, birth, movies (a set of movie_ids)
people = {}
# Maps movie_ids to a dictionary of: title, year, stars (a set of person_ids)
movies = {}
def load_data(directory):
"""
Load data from CSV files into memory.
"""
# Load people
with open(f"{directory}/people.csv", encoding="utf-8") as f:
reader = csv.DictReader(f)
for row in reader:
people[row["id"]] = {
"name": row["name"],
"birth": row["birth"],
"movies": set()
}
if row["name"].lower() not in names:
names[row["name"].lower()] = {row["id"]}
else:
names[row["name"].lower()].add(row["id"])
source: это строковая переменная от пользователя.
если я наведу курсор на имя, оно говорит (name : dict)
здесь та же проблема
films = people[a_id]["movies"]