Hi!
I have a nested dictionary with string values containing both letters and numbers. I want to sort them using natural sorting (”M1, M2, M10, Sö202” instead of ”M1, M10, M2, Sö202”).
Despite reading a lot on StackOverflow and other places, I still haven’t managed to get it right. I find parts of answers here and there, but some are for Python 2, some Python 3, some use modules I don’t have, and so on.
This is a very small part of the dictionary:
dict_nested = {'Tynderö 163': {'lamnings_id_raa': 'L1934:1839', 'fid': 184092, 'sv_runinskr_fnrtdb': 'Sö 9', 'sv_runinskr_trim': 'Sö9', 'obj_id_fnrtdb': '', 'signum_fnrtdb': 'Sö 9 $'}, 'Härnösand 148': {'lamnings_id_raa': 'L1934:2591', 'fid': 150041, 'sv_runinskr_fnrtdb': 'Sö 11', 'sv_runinskr_trim': 'Sö11', 'obj_id_fnrtdb': '', 'signum_fnrtdb': 'Sö 11 +'}, 'Njurunda 807': {'lamnings_id_raa': 'L1934:374', 'fid': 149317, 'sv_runinskr_fnrtdb': 'U 215', 'sv_runinskr_trim': 'U215', 'obj_id_fnrtdb': '', 'signum_fnrtdb': 'U 215 $'}, 'Skön 70:1': {'sv_runinskr_fnrtdb': 'M 5', 'sv_runinskr_trim': 'M5', 'signum_fnrtdb': 'M 5', 'lamnings_id_raa': {}, 'fid': {}, 'obj_id_fnrtdb': '10249200700001'}, 'Skön 70:2': {'sv_runinskr_fnrtdb': 'M 16', 'sv_runinskr_trim': 'M16', 'signum_fnrtdb': 'M 16', 'lamnings_id_raa': {}, 'fid': {}, 'obj_id_fnrtdb': '10249200700002'}, 'Skog 7:4': {'lamnings_id_raa': 'L1935:1941', 'fid': 42683, 'sv_runinskr_fnrtdb': '', 'sv_runinskr_trim': '', 'obj_id_fnrtdb': '', 'signum_fnrtdb': ''}, 'Njurunda 173:1': {'sv_runinskr_fnrtdb': 'M 10', 'sv_runinskr_trim': 'M10', 'signum_fnrtdb': 'M 10 $', 'lamnings_id_raa': {}, 'fid': {}, 'obj_id_fnrtdb': '10248101730001'}, 'Njurunda 116:1': {'sv_runinskr_fnrtdb': 'M 1', 'sv_runinskr_trim': 'M1', 'signum_fnrtdb': 'M 1 $', 'lamnings_id_raa': {}, 'fid': {}, 'obj_id_fnrtdb': '10248101160001'}}
I want to sort the values for the ”sv_runinskr_trim” key. This is something I need to do all the time. Can anyone help me make a breaktrough here? Ideally I would also like to understand what I’m doing. 🙂
Best regards, Niklas
(The dictionary is for a website about Swedish rune stones.)