You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中保留前4个键并对JSON/Dict其余按键排序?

实现方法:固定前置键+剩余按键字母排序

可以用Python直接实现这个需求,核心逻辑是先保留指定的固定键,再将剩余按键按字母顺序排序后拼接:

  1. 提取top、left、width、height四个固定键,严格按要求的顺序保留
  2. 筛选字典中除固定键外的所有按键,按字母顺序排序
  3. 重新构建新字典,先放入固定键,再依次加入排序后的剩余按键

代码示例

original_dict = {
    "top": 590,
    "left": 105, 
    "width": 240, 
    "height": 40,
    "Zarya": "142612a11ad2ca629d2182a51b23d1f2",
    "Kiriko": "4d0528271fd9d0104cd2af0b1c91f4f6",
    "Echo": "175b9c62c57b0d6e18577f352fad4afc",
    "Sojourn": "8ea40548f4472457cfbd46731958a432",
    "Sombra": "319e88daf8a4b53869c6690cd008ebb0",
    "Genji": "b5a7156b9a1921099a884e62f2f7c774",
    "Reaper": "309527687ec1e89f63cfece162c57a66",
    "Ana": "556e9f3ff210729dc9e1cf848c3c579f",
    "Hanzo": "13d164a4f37fd7562b53ede9f5fd2671",
    "Lucio": "d772ddc7e982cd6d714d0a19753c8b32",
    "Torbjorn": "4fdf46b32b3435c714da7a75ba0ccde2",
    "Junkrat": "be29c9729daf9e46606ffa26638641ea",
    "Moira": "0b54634e09e4d108ca248e4e967d15a1",
    "Mei": "90391ff04b11c73e49c48f9b2738d1b0",
    "Dva": "859012ee744e79a630522190ef8ef92c",
    "Soldier 76": "adbd70e889fe6135f372dbd28b7ae5e6",
    "Winston": "1c4245a79b45f1a0b90e78383078cdd3",
    "Tracer": "b5465050c403b020aac35da073d4ab11",
    "Zenyatta": "dccc24bfe5d7b09df7b1387d4c8dfba7",
    "Baptiste": "4d254bc437560ac21780732fc78ffa08",
    "Sigma": "3c85376aee36a901bcbf24b07cf60aa2",
    "Widowmaker": "049092cbd628a54ed22ae5522ca5681c",
    "Orisa": "113acca96744081964854bd94191310a",
    "Ashe": "48ca311fb1b288bb811965e6d84d1786"
}

# 定义固定顺序的前置键
fixed_keys = ["top", "left", "width", "height"]
# 提取剩余按键并按字母排序
sorted_remaining_keys = sorted([k for k in original_dict if k not in fixed_keys])

# 构建新字典
sorted_dict = {}
# 先添加固定键
for key in fixed_keys:
    sorted_dict[key] = original_dict[key]
# 再添加排序后的剩余键
for key in sorted_remaining_keys:
    sorted_dict[key] = original_dict[key]

# 输出格式化后的结果
import json
print(json.dumps(sorted_dict, indent=4))

最终输出效果

运行代码后,生成的字典会先保留top、left、width、height的顺序,后续英雄按键按A-Z字母顺序排列:

{
    "top": 590,
    "left": 105,
    "width": 240,
    "height": 40,
    "Ana": "556e9f3ff210729dc9e1cf848c3c579f",
    "Ashe": "48ca311fb1b288bb811965e6d84d1786",
    "Baptiste": "4d254bc437560ac21780732fc78ffa08",
    "Dva": "859012ee744e79a630522190ef8ef92c",
    "Echo": "175b9c62c57b0d6e18577f352fad4afc",
    "Genji": "b5a7156b9a1921099a884e62f2f7c774",
    "Hanzo": "13d164a4f37fd7562b53ede9f5fd2671",
    "Junkrat": "be29c9729daf9e46606ffa26638641ea",
    "Kiriko": "4d0528271fd9d0104cd2af0b1c91f4f6",
    "Lucio": "d772ddc7e982cd6d714d0a19753c8b32",
    "Mei": "90391ff04b11c73e49c48f9b2738d1b0",
    "Moira": "0b54634e09e4d108ca248e4e967d15a1",
    "Orisa": "113acca96744081964854bd94191310a",
    "Reaper": "309527687ec1e89f63cfece162c57a66",
    "Sigma": "3c85376aee36a901bcbf24b07cf60aa2",
    "Soldier 76": "adbd70e889fe6135f372dbd28b7ae5e6",
    "Sojourn": "8ea40548f4472457cfbd46731958a432",
    "Sombra": "319e88daf8a4b53869c6690cd008ebb0",
    "Torbjorn": "4fdf46b32b3435c714da7a75ba0ccde2",
    "Tracer": "b5465050c403b020aac35da073d4ab11",
    "Winston": "1c4245a79b45f1a0b90e78383078cdd3",
    "Widowmaker": "049092cbd628a54ed22ae5522ca5681c",
    "Zarya": "142612a11ad2ca629d2182a51b23d1f2",
    "Zenyatta": "dccc24bfe5d7b09df7b1387d4c8dfba7"
}

内容的提问来源于stack exchange,提问作者NFeruch - FreePalestine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 04:25:18