flat_file_renderers

Render tabular/nested datasets (list, dict, QuerySet-like iterables, or record objects) into xlsx, csv, tsv, json, html or parquet files, zipped - with zero required dependencies.

GitHub Repository License Python QA Coverage Publish Docs pre-commit

Installation

pip install flat-file-renderers            # csv, tsv, json, html
pip install flat-file-renderers[xlsx]       # + Excel
pip install flat-file-renderers[parquet]    # + Apache Parquet
pip install flat-file-renderers[all]        # everything

Modules

Quick start

from flat_file_renderers import CsvRenderer

renderer = CsvRenderer({})
zip_path = renderer.render({"dataset": [{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}]})
# zip_path -> Path to a .zip containing one .csv

Nested data is flattened automatically (contacts.1.phone, contacts.2.phone, …), and a dict[str, dataset] renders one file per key, zipped together:

from flat_file_renderers.xlsx import XlsxRenderer  # extra: xlsx

renderer = XlsxRenderer({})
zip_path = renderer.render({"dataset": {"Students": [...], "Courses": [...]}})
# zip_path -> Path to a .zip containing one .xlsx with two sheets

Runnable examples for every renderer are available in the sandbox/ directory of the repository.

Next steps