Задать вопрос
  • Как создать красивые inline кнопки для питона (telegram, aiogram)?

    V4kodin
    @V4kodin Автор вопроса
    Потому что я дурак и не заметил)
    Спасибо
  • Как правильно задать json файл?

    V4kodin
    @V4kodin Автор вопроса
    Спасибо, бот обходится
    with open('input.json', 'rt') as src:
        raise ValueError(src.read())
  • Как правильно задать json файл?

    V4kodin
    @V4kodin Автор вопроса
    Jacen11,
    какая разница на каком языке ты ее сделаешь? я питон впервые вижу за пять лет, запустил онлайновую версию и уже вижу ошибки в твоем коде, даже связанные просто с сигнатурами методов

    Типизация, языка, layout проекта, фреймворки и тд. все это очевидно зависит от языка.

    нахрена субд, ты о чем?

    Нормальные люди хранят подобные данные в бд/excel документе.

    да даже на одну нормально может быть

    нет. Ну тут проблема что основы плоховато знаешь. По факту объект это твоя "таблица", колонки это поля объекта. А строки это конкретные экземпляры

    то есть все таки код в принципе неправильный?

    давай прямо скажу. Твой код не работает! ты используешь неправильные методы!

    А давай я тебе не буду ебать мозг в попытках доказать что мой код рабочий, в то время как ты мне не будешь ебать мозг в попытках доказать что он не рабочий.
    Скинь мне рабочий по твоему мнению код я отправлю его и пруфану тебе скрином, что он падает с ошибкой.
    Заодно поучусь мастерству написания красивого кода. А ты проверишь свои знания.
  • Как правильно задать json файл?

    V4kodin
    @V4kodin Автор вопроса
    Jacen11,
    сам не видишь что это полная дичь?

    В целом да, но разбиение данного кода на 4 отдельные строчки показалась мне глупой идей, хотя для читаемости пожалуй да, будет лучше разбить. Ты прав.

    нет, это не так

    Что значит не так? В задаче четко прописано что данные должны выводится в таблице. Так что работа идет с таблицами. Просто в нормальной реализации ты подтягиваешь либу которая сама все писать в таблички будет. Ну или субд которая опять же будет тебе все в таблицы писать. Это задача относится классу задач "от жака фреско" без особого смысла, чисто проверить языковые знания и умение думать.

    в принципе это оправдано когда делаешь у себя дома какую то поделку и этого никто не увидит

    В данный момент такую поделку и делаю. А на счет коммерческой разработки, я уж точно не хочу делать большие проекты на питоне лол.

    это самодостаточный кусок код, пруф что он работает или сказочник

    Имелось ввиду что если запустить эту программу (кусок кода программы), то ошибка будет буквально та же самая.
    Просто потому что это верхняя часть кода программы, а до нижней компилятор просто не доберется из-за ошибки.
    Пруфануть не могу, потому как у меня на руках все еще нет json с правильными входными данными, а у бота яндекса стоит защита не позволяющая пройти программам не записывающим output.tsv файл.

    нет, сам же пишешь что ошибка в той части что скинул)

    Тут я вообще не понял что ты написал.
  • Как правильно задать json файл?

    V4kodin
    @V4kodin Автор вопроса
    Jacen11,
    у меня твой последний код не работает

    и где это?

    видимо потому что я скинул не полный код а только ту часть в которой ошибка.

    никто не хранит данные в массивах и мапах как тут. Я же писал, объекты используют нормальные разработчики

    Задача подразумевают работу с и запись в двумерный массив, таблицей если угодно. По этой причине использование массивов в данном коде более чем оправдано.

    Прилагаю полную версию кода:
    import json
    
    
    def main():
        # variables to create table
        arr = []
        table = []
    
        # import data from json file
        with open('input.json') as f:
            templates = json.load(f)
    
        # writing data from json to table
        for i in range(len(templates)):
            arr.append(templates[i]["username"])
            arr.append(templates[i]["commits"])
            arr.append(templates[i]["changed_lines"])
            arr.append(templates[i]["new_files"])
    
            table.append(arr)
            arr = []
    
        # sorting table
        table.sort(key=lambda x: x[0])
    
        # transposing table to easy work with
        table = transpose(table)
    
        # writing table to .tsv file as in task
        my_file = open("output.tsv", "w+")
        my_file.write("username\tcommits\tchanged_lines\tnew_files\n")
        for i in range(len(table[0])):
            my_file.write(f"{table[0][i]}\t{table[1][i]}\t{table[2][i]}\t{table[3][i]}\n")
    
    
    # transposing matrix func
    def transpose(matr):
        res = []
        n = len(matr)
        m = len(matr[0])
        for j in range(m):
            tmp = []
            for i in range(n):
                tmp = tmp + [matr[i][j]]
            res = res + [tmp]
        return res
    
    
    # execution
    main()
  • Как правильно задать json файл?

    V4kodin
    @V4kodin Автор вопроса
    Jacen11, нет, ты не понял мой код тоже работает, с мои json. Проблема при отправке боту, он не может найти ключ "commits" следовательно json задан как-то по другому.

    Касательно написания кода я сейчас не ориентировался на его читаемость, однако никаких серьезных огрехов в нем не вижу. Если есть более конкретные замечания то пожалуйста изложи.
  • Как правильно задать json файл?

    V4kodin
    @V4kodin Автор вопроса
    новый input.json
    [
       { "username":"Super hero squad",
          "commits": 1,
          "changed_lines": 2,
          "new_files": 4
       },
     { "username":"squad",
          "commits": 3,
          "changed_lines": 6,
          "new_files": 9
       }
    , { "username":"abc",
          "commits": 8,
          "changed_lines": 16,
          "new_files": 32
       }
    ]
  • Как правильно задать json файл?

    V4kodin
    @V4kodin Автор вопроса
    Странно что при этом он не жалуется на username, который идет первым
    Код программы
    import json
    
    
    def main():
        arr = []
        table = []
        with open('input.json') as f:
            templates = json.load(f)
        for i in range(len(templates)):
            arr.append(templates[i]["username"])
            arr.append(templates[i]["commits"])
            arr.append(templates[i]["changed_lines"])
            arr.append(templates[i]["new_files"])
            table.append(arr)
            arr = []
  • Как правильно задать json файл?

    V4kodin
    @V4kodin Автор вопроса
    Jacen11, Переделал под такой вид, однако бот все еще жалуется
    код ошибки
    Traceback (most recent call last):
    File "c8c4f1b0-b3f2-47fe-ac7b-8ad82742a884", line 37, in
    main()
    File "c8c4f1b0-b3f2-47fe-ac7b-8ad82742a884", line 12, in main
    arr.append(templates[i]["commits"])
    KeyError: 'commits'
  • Как правильно задать json файл?

    V4kodin
    @V4kodin Автор вопроса
    Jacen11, Да, к сожалению никаких входных данных не дано в задаче.