import json
def paginate_json(json_data, page_size=10, default_value=None):
"""
Paginates a JSON object and returns results with default values.
Args:
json_data (list): A list of JSON objects.
page_size (int): The number of items per page (default: 10).
default_value (any): The default value to use for missing keys (default: None).
Returns:
list: A list of dictionaries, each representing a page of results.
"""
all_pages = []
for i in range(0, len(json_data), page_size):
page_data = json_data[i:i + page_size] # Slice the list for the current page
paginated_page = []
for item in page_data:
# Handle missing keys by using the default value
paginated_item = {k: item.get(k, default_value) for k in item}
paginated_page.append(paginated_item)
all_pages.append(paginated_page)
return all_pages
if __name__ == '__main__':
# Example usage
data = [
{"id": 1, "name": "Alice"},
{"id": 2, "name": "Bob", "age": 30},
{"id": 3, "name": "Charlie"},
{"id": 4, "age": 25},
{"id": 5, "name": "Eve", "city": "New York"}
]
# Paginate with page size 2 and default value "N/A"
paginated_results = paginate_json(data, page_size=2, default_value="N/A")
for page in paginated_results:
print(page)
Add your comment