Может быть, вам стоит узнать о симпатичном модуле печати, так как он заставляет вас проверять вещи (даже я согласен, что вы попали в беспорядок. Это обычно происходит как рекурсия результата с неправильным видом результата, например, выполнение добавления, когда вы должны сделать расширить список)
Здесь содержимое вашей переменной довольно напечатано:
{u'content': {u'articles': {u'add': True,
u'delete': True,
u'edit': True,
u'view': True},
u'pages': {u'add': True,
u'delete': True,
u'edit': True,
u'view': True},
u'slideshow': {u'edit': True, u'view': True}},
u'events': {u'add': True, u'delete': True, u'edit': True, u'view': True},
u'forms': {u'employment': {u'delete': True, u'view': True},
u'financing': {u'delete': True, u'view': True},
u'service': {u'delete': True, u'view': True}},
u'people': {u'add': True,
u'delete': True,
u'edit': True,
u'sort-riders': True,
u'sort-staff': True,
u'view': True},
u'settings': {u'edit': True, u'view': True}}
Из этого видно, что у вас есть только Истинное значение, а не Ложь. Какой вариант использования этих значений? Например, почему вы не используете set: {u'add ', u'delete', u'edit ', u'sort-riders', ...}?
from pprint import pprint
def alternative(yourdict):
for key in yourdict:
if yourdict[key] is True:
yield set(yourdict.keys())
break
else:
yield tuple((key,tup) for tup in alternative(yourdict[key]))
my_variable = {u'forms': {u'financing': {u'view': True, u'delete': True}, u'employment': {u'view': True, u'delete': True}, u'service': {u'view': True, u'delete': True}}, u'content': {u'articles': {u'edit': True, u'add': True, u'view': True, u'delete': True}, u'slideshow': {u'edit': True, u'view': True}, u'pages': {u'edit': True, u'add': True, u'view': True, u'delete': True}}, u'people': {u'edit': True, u'sort-staff': True, u'sort-riders': True, u'add': True, u'delete': True, u'view': True}, u'events': {u'edit': True, u'add': True, u'view': True, u'delete': True}, u'settings': {u'edit': True, u'view': True}}
pprint(my_variable)
print 50 * '-'
print 'Alternative datastructure'
pprint(tuple(alternative(my_variable)))