fork download
  1. #!/usr/bin/env python3
  2. # split_json_ideone.py — читает JSON из stdin и выводит части в stdout.
  3.  
  4. import json
  5. import math
  6. import sys
  7.  
  8.  
  9. def main() -> None:
  10. # Первая строка stdin — количество частей
  11. try:
  12. parts = int(sys.stdin.readline().strip())
  13. except ValueError:
  14. print("Ошибка: первая строка должна быть целым числом — количеством частей.")
  15. return
  16.  
  17. # Остальной stdin — собственно JSON
  18. try:
  19. data = json.load(sys.stdin)
  20. except json.JSONDecodeError as e:
  21. print(f"Ошибка JSON: {e}")
  22. return
  23.  
  24. if not isinstance(data, list):
  25. print("Ошибка: корневой элемент JSON должен быть массивом (списком).")
  26. return
  27.  
  28. chunk_size = math.ceil(len(data) / parts)
  29. for i in range(parts):
  30. chunk = data[i * chunk_size : (i + 1) * chunk_size]
  31. print(f"=== Часть {i + 1}/{parts} ===")
  32. print(json.dumps(chunk, ensure_ascii=False, indent=2))
  33.  
  34.  
  35. if __name__ == "__main__":
  36. main()
  37.  
Success #stdin #stdout 0.13s 15668KB
stdin
\n4\n[{"id":1,"name":"A"},{"id":2,"name":"B"}, … ]\n
stdout
Ошибка: первая строка должна быть целым числом — количеством частей.