Форум сайта python.su
У нас есть следующая структура файла:
60b90c1c13067a15887e1ae1,Tayson,3
60b90c2413067a15887e1ae2,Vika,1
60b90c2e13067a15887e1ae3,Барсик,2
60b90c3b13067a15887e1ae4,Simon,12
60b90c4613067a15887e1ae5,Tessi,5
Каждая запись состоит из трех частей и начинается с новой строчки. Например, для первой записи начало 60b90c1c13067a15887e1ae1 – это первичный ключ базы данных MongoDB. Он всегда содержит 12 байтов или ровно 24 символа. Далее мы видим прозвище кота Tayson и его возраст 3. Все части записи разделены символом запятая ,
Разработайте функцию get_cats_info(path), которая будет возвращать список словарей с данными кошек в виде:
[
{“id”: “60b90c1c13067a15887e1ae1”, “name”: “Tayson”, “age”: “3”},
{“id”: “60b90c2413067a15887e1ae2”, “name”: “Vika”, “age”: “1”},
{“id”: “60b90c2e13067a15887e1ae3”, “name”: “Barsik”, “age”: “2”},
{“id”: “60b90c3b13067a15887e1ae4”, “name”: “Simon”, “age”: “12”},
{“id”: “60b90c4613067a15887e1ae5”, “name”: “Tessi”, “age”: “5”},
]
Параметры функции:
path – путь к файлу
Требования:
прочтите содержимое файла с помощью режима “r”.
мы используем менеджер контекста with
верните из функции список кошек из файла в нужном формате
def get_cats_info(path): dct={} res = [] with open(path, 'r') as fh: for i in fh.read().split(): j = i.split(",") dct.update({"id": j[0], "name": j[1], "age": j[2]}) res.append(dct) return res
[{'id': '60b90c2e13067a15887e1ae3', 'name': 'Barsik', 'age': '2'}, {'id': '60b90c2e13067a15887e1ae3', 's':' 2'}, {'id': '60b90c2e13067a15887e1ae3', 'name': 'Barsik', 'age': '2'}] Необходимо вернуть список: [{'id': '60b90c1c13067a15887e ', 'age': '3'}, {'id': '60b90c2413067a15887e1ae2', 'name': 'Vika', 'age': '1'}, {'id': '60b90c2e13067a15887ea 'Barsik', 'age': '2'}]
Офлайн
def get_cats_info_2(path): res = [] with open(path, 'r') as fh: for i in fh.read().split(): j = i.split(",") dct={"id": j[0], "name": j[1], "age": j[2]} res.append(dct) return res
Отредактировано xam1816 (Янв. 17, 2023 22:01:19)
Офлайн
Интересно.То есть я каждый раз создавал один и тот же словари и он его обновлял перезаписывая из-за функции update().Ну понял эту ошибку.Спасибо!
Офлайн