sort_json.py 826 B

123456789101112131415161718192021222324252627282930
  1. import json
  2. # Load the JSON
  3. with open("process_help.json", "r", encoding="utf-8") as f:
  4. data = json.load(f)
  5. # Convert dict to list of items with their keys
  6. items = [
  7. {"key": k, **v}
  8. for k, v in data.items()
  9. ]
  10. # Sort by subcategory first, then by title
  11. items_sorted = sorted(
  12. items,
  13. key=lambda item: (
  14. item.get("category", "").lower(),
  15. item.get("subcategory", "").lower(),
  16. item.get("title", "").lower()
  17. )
  18. )
  19. # Convert back to dict, using the original keys (still sorted)
  20. sorted_data = {item["key"]: {k: item[k] for k in item if k != "key"} for item in items_sorted}
  21. # Write the sorted JSON back out
  22. with open("process_help_sorted.json", "w", encoding="utf-8") as f:
  23. json.dump(sorted_data, f, indent=2, ensure_ascii=False)
  24. print("Sorted JSON saved to process_help_sorted.json")