python - 如何使用 Python 对以数字文件名作为键的 JSON 文件名进行排序?
问题描述
我有一个 JSON 文件,其中包含文件名和每个描述作为键值对。但是,当我尝试对文件进行排序时,使用 OrderedDict 会产生 0.jpg 1.jpg 10.jpg 11 ..... 2 20 等顺序。
op={int(k) : v for k, v in output.items()}
我尝试这样做,但它返回一个 ValueError。错误如下
ValueError: int() 以 10 为底的无效文字:'1520.png'
解决方案
OrderedDict(sorted(output.items(), key=lambda item: int(item[0].split('.')[0])))
例子
output = {f'{i}.jpg': None for i in reversed(range(21))}
od = OrderedDict(sorted(output.items(), key=lambda item: int(item[0].split('.')[0])))
输出:
OrderedDict([('0.jpg', None),
('1.jpg', None),
('2.jpg', None),
('3.jpg', None),
('4.jpg', None),
('5.jpg', None),
('6.jpg', None),
('7.jpg', None),
('8.jpg', None),
('9.jpg', None),
('10.jpg', None),
('11.jpg', None),
('12.jpg', None),
('13.jpg', None),
('14.jpg', None),
('15.jpg', None),
('16.jpg', None),
('17.jpg', None),
('18.jpg', None),
('19.jpg', None),
('20.jpg', None)])
推荐阅读
- kotlin - 按钮无法导航
- javascript - 触摸背景时interactjs中的捏问题
- python - 量化曲线波动的方法
- linux - 将其用于数据库(tr、逗号、空格、csv)
- sql - SQL server WHERE 子句中的排除
- git - 使用 'git anycommand -h' 显示命令的所有信息
- r - createWorkbook(type = ext)中的错误:R中的未知格式数据
- parsing - K8 yaml:如何正确解析长字符串作为参数
- javascript - 如何检测 JS 是否在 Website Builder 中运行?
- javascript - 反应滚动事件不会停止触发