1. import json
  2. def paginate_json(json_data, page_size=10, default_value=None):
  3. """
  4. Paginates a JSON object and returns results with default values.
  5. Args:
  6. json_data (list): A list of JSON objects.
  7. page_size (int): The number of items per page (default: 10).
  8. default_value (any): The default value to use for missing keys (default: None).
  9. Returns:
  10. list: A list of dictionaries, each representing a page of results.
  11. """
  12. all_pages = []
  13. for i in range(0, len(json_data), page_size):
  14. page_data = json_data[i:i + page_size] # Slice the list for the current page
  15. paginated_page = []
  16. for item in page_data:
  17. # Handle missing keys by using the default value
  18. paginated_item = {k: item.get(k, default_value) for k in item}
  19. paginated_page.append(paginated_item)
  20. all_pages.append(paginated_page)
  21. return all_pages
  22. if __name__ == '__main__':
  23. # Example usage
  24. data = [
  25. {"id": 1, "name": "Alice"},
  26. {"id": 2, "name": "Bob", "age": 30},
  27. {"id": 3, "name": "Charlie"},
  28. {"id": 4, "age": 25},
  29. {"id": 5, "name": "Eve", "city": "New York"}
  30. ]
  31. # Paginate with page size 2 and default value "N/A"
  32. paginated_results = paginate_json(data, page_size=2, default_value="N/A")
  33. for page in paginated_results:
  34. print(page)

Add your comment