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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file json-stream-generator-0.2.0.tar.gz.

File metadata

  • Download URL: json-stream-generator-0.2.0.tar.gz
  • Upload date:
  • Size: 3.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.14

File hashes

Hashes for json-stream-generator-0.2.0.tar.gz
Algorithm Hash digest
SHA256 4762e66b77b12180fee124345befa205fd7247fc5dc420e1564b9c1d0b974676
MD5 b51c1bf1c754eeb44a1de68ca85ce46a
BLAKE2b-256 6c76673a465c39989ab75a433f90209ccd4e84550956a261d0bb49368b82543b

See more details on using hashes here.

File details

Details for the file json_stream_generator-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for json_stream_generator-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8d9a71e2c9483310f6d7cb973ed2264143580c2a8c907d78bccc65d375362f39
MD5 fd8fd8e30723f8a73657f876b5a950b0
BLAKE2b-256 0d120a2fb0f0b90a23a699b817bb589149a77ffb6dc2a51e9955271a3213f706

See more details on using hashes here.

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