>>> import re
>>> sorted(lst, key=lambda x: int(re.findall(r'\d+$', x)[0]))
['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']
Кажется, что модуль json в Python не понимает .1
как 0.1
. Если вы добавите 0
перед периодом, он будет работать.
Очевидно, что Solarc прав, но у меня недостаточно представителей, чтобы комментировать, поэтому я добавляю немного здесь.
Если у вас возникли проблемы с чтением файла json (или простого текстового файла json), попробуйте поместить данные или образцы данных через валидатор json (например, https: // jsonlint.com/). Это может сэкономить вам время на отладку.