Я импортирую данные из CSV и помещаю их в вложенные dicts. Мой текущий ключ проверка выглядит следующим образом:Loop create inested dicts
data = {}
[...]
if day not in data:
data[day] = {}
if hour not in data[day]:
data[day][hour] = {}
if user in data[day][hour]:
worked_time += (
data[day][hour][user]['worked_time']
)
data[day][hour][user] = {
'name': users[user]['name'],
'worked_time': worked_time
}
Они могут быть несколько пользователей для каждого data[day][hour]
Было интересно, если есть лучший способ для проверки, если каждый key
существует, чем при использовании нескольких ifs
.
Я не думаю, что '' имя ': [пользователи] [пользователь] [' name '], 'действительный синтаксис python. Но 'collections.defaultdict' или' dict.setdefault' могут быть хорошими альтернативами этим операторам 'if xxx not in yyy'. – MSeifert
это должно ответить на ваши вопросы: https://stackoverflow.com/questions/19189274/defaultdict-of-defaultdict-nested#19189356 –
Вы правы, это мое письмо с ошибками, должно быть 'users [user] ['name] '. Будем проверять связанный ответ, спасибо. – Pythonist