Skip to main content

json-stream-generator - serialize json to stream of strings in generator

Project description

json-stream-generator - serialize json in generator

tests pypi

json-stream-generator allows you to serialize object to JSON string and start the output immediately, without waiting for serialization to complete.

It was designed to be used with Django's StreamingHttpResponse or similar concept in other web frameworks to allow sending huge json blobs to the client without triggering load balancer's timeout:

from json_stream_generator import json_generator
from django.http import StreamingHttpResponse

def my_view(request):
    # NOTE: No Content-Length header!
    return StreamingHttpResponse(
        json_generator((num for num in range(100_000_000))),
        content_type="application/json",
        headers={"Content-Disposition": 'attachment; filename="somefilename.json"'},
      )

json-stream-generator comes with built-in support for Django Rest Framework:

from json_stream_generator.rest_framework.mixins import StreamingListModelMixin
from rest_framework import viewsets


class DemoViewSet(StreamingListModelMixin, viewsets.ModelViewSet):
    queryset = MyModel.objects.all()
    serializer_class = MySerializer

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

json-stream-generator-0.2.0.tar.gz (3.7 kB view hashes)

Uploaded Source

Built Distribution

json_stream_generator-0.2.0-py3-none-any.whl (3.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page