Здравствуйте, решая contest от яндекса столкнулся с проблемой: Не могу понять в как заданы входные условия задачи.
Условия задачи
По результатам полугодия команда Пандаса Фигандаса не смогла выполнить kpi, который он им поставил. Он задумался, а нет ли в его команде бездельников? Он смог найти файл с последними событиями в репозитории и собирается посчитать научно обоснованный показатель эффективности разработчика - количество написанного кода (в строках), количество добавленных файлов и количество комитов. Но вот же беда - данные ведь в формате json! Помогите ему и предоставьте таблицу в формате .tsv! Таблица должна содержать колонки в следующем порядке
["username", "commits", "changed_lines", "new_files"],
а также должна быть отсортирована по username.
- username - юзернейм разработчика
- commits - количество комитов разработчика
- changed_lines - суммарное количество changed_lines
- new_files - суммарное количество новых файлов добавленных разработчиком. Новым файлом считается любой файл, которого вы раньше не встречали (если смотреть на commit_time). Обратите внимание, что данные изначально не отсортированы по commit_time
Формат ввода
json с данными. ВНИМАНИЕ, ФАЙЛ В КОНТЕСТЕ НАЗЫВАЕТСЯ input.json
Формат вывода
Сохраните получившуюся таблицу в файл output.tsv
Примечания
Pandas при решении задачи использовать запрещено.
Пробывал следующие входные данные:
файл input.json{
"username": [
"Super hero squad",
"squad",
"abc"
],
"commits": [
11,
22,
33
],
"changed_lines": [
22,
44,
55
],
"new_files": [
44,
88,
99
]
}
Далее разбивал их на словарь функцией json.load из стандартной библиотеки json.
Однако при обращении к любому элементу автотестер яндекса выдает ошибку:
ОшибкаTraceback (most recent call last): File "3d7ce9ba-a219-4533-a14b-eeea772a15bf",
line 32, in main()
File "3d7ce9ba-a219-4533-a14b-eeea772a15bf", line 8, in main
table.append(templates["username"])
TypeError: list indices must be integers or slices, not str
Упрощенный код программы на pythonimport json
def main():
table = []
with open('input.json') as f:
templates = json.load(f)
table.append(templates["username"])
main()
Соответственно входные данные преобразуются в строку а не в словарь, что очень странно для json.
Как можно задать json по факту не являющийся словарем?
Можете привести пример подходящих входных данных?
Либо можно ли обмануть бота яндекса чтобы тот выдал в отчет о тестировании входые данные?