Найти - Пользователи
Полная версия: Разработайте функцию get_cats_info(path)
Начало » Центр помощи » Разработайте функцию get_cats_info(path)
1
Alduin
У нас есть следующая структура файла:

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



Функция get_cats_info работает неверно и возвращает: Необходимо вернуть список:
 [{'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'}]

Ггде ошибка?? Что изменить??
xam1816
  
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


Функция get_cats_info работает неверно и возвращает:
так посмотри что возвращается, увидишь что там в списке словари из последней строчки,
потому что в список добавляется один и тот же словарь, только методом update() он после каждой итерации меняется.
Alduin
Интересно.То есть я каждый раз создавал один и тот же словари и он его обновлял перезаписывая из-за функции update().Ну понял эту ошибку.Спасибо!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB