У вас может быть такая вспомогательная функция:
out = {}
def create(*args):
d = out
for arg in args:
d = d.setdefault(arg, {})
create('school', 'students_data', '4th Grade', 'Student', 'Alex L', 'age')
create('school', 'students_data', '4th Grade', 'Student', 'Alex L', 'Fav Sport')
Или она может принимать аргументы только по ключевым словам для последнего ключа, пара значений:
def create(*args, k, v):
d = out
for arg in args:
d = d.setdefault(arg, {})
d[k] = v
create('school', 'students_data', '4th Grade', 'Student', 'Alex L', k='age', v=alex_age)
create('school', 'students_data', '4th Grade', 'Student', 'Alex L', k='Fav Sport', v="soccer")
В качестве альтернативы вы можно использовать вложенный словарь по умолчанию:
from collections import defaultdict
def rec_dd():
return defaultdict(rec_dd)
out = rec_dd()
out['school']['students_data']['4th Grade']['Student']['Alex L']['age'] = alex_age