Here's how you can get the sorted list you are looking for:
items = ((k, k2, v) for k in d for k2, v in d[k].items())
ordered = sorted(items, key=lambda x: x[-1], reverse=True)
This first converts your dictionary into a generator that gives tuples (key_1, key_2, value), and then sorts it based on value. reverse=Truemakes sorting the highest to the lowest.
Here is the result:
>>> pprint.pprint(ordered)
[('library', 'lamp', 6),
('library', 'wall', 2),
('hain', 'facet', 1),
('hain', 'wrapp', 1),
('hain', 'chinoiserie', 1),
('library', 'sconc', 1),
('library', 'floor', 1),
('library', 'desk', 1),
('library', 'table', 1),
('library', 'maine', 1)]
, , ( , key_1), , - , .
, :
for key_1, key_2, value in ordered:
print key_1, key2, value