A utility package to convert JSON data to multiple formats like XML, Markdown, CSV, etc.
Project description
Json_To_Many
Overview
In today's interconnected digital ecosystem, JSON has become the lingua franca of data exchange. From REST APIs to configuration files, from database exports to IoT sensor data, JSON is everywhere. However, while JSON excels at machine-to-machine communication, different tools, platforms, and use cases often require data in specific formats.
Json_To_Many bridges this gap by providing seamless conversion from JSON to multiple output formats. Whether you're a developer documenting an API, a data analyst preparing reports, or a content creator transforming data for different platforms, this package eliminates the friction of manual format conversion.
The Problem We Solve
- Developers need to transform API responses for documentation (Markdown)
- Data analysts require CSV exports for spreadsheet analysis
- DevOps teams need XML for legacy system integration
- Content creators want structured data in readable formats
- Business users need reports generated from JSON APIs
Json_To_Many makes these transformations effortless, allowing you to focus on what matters most: your data and insights.
The project is managed using uv for dependency management and packaging, and Ruff is used for linting to ensure code quality.
Features
Current Supported Formats
- JSON to Markdown
- JSON to XML
- JSON to CSV
Upcoming Supported Formats
- JSON to TSV
- JSON to SQL
- JSON to YAML
- JSON to HTML
- JSON to PDF
Table of Contents
Installation
Install Json_To_Many using pip:
pip install json_to_many
Or, if you prefer using uv:
uv add json_to_many
Quick Start
from json_to_many import convert
# Convert JSON string to Markdown and save to 'output.md'
json_string = '{"title": "Sample Document", "content": "This is a sample."}'
convert(json_string, 'markdown', output_file='output.md')
# Convert JSON file to XML and get the converted data
xml_data = convert('data.json', 'xml', return_data=True)
print(xml_data)
Usage
Converting JSON to Markdown
From a JSON File:
from json_to_many import convert
# Convert JSON file to Markdown and save to 'output.md'
convert('data.json', 'markdown', output_file='output.md')
From a JSON String:
from json_to_many import convert
json_string = '{"title": "Sample Document", "content": "This is a sample."}'
# Convert JSON string to Markdown and get the converted data
markdown_data = convert(json_string, 'markdown', return_data=True)
print(markdown_data)
Sample Output:
# title
Sample Document
# content
This is a sample.
Converting JSON to XML
From a Python Dictionary:
from json_to_many import convert
json_data = {
"note": {
"to": "Alice",
"from": "Bob",
"message": "Hello, Alice!"
}
}
# Convert JSON data to XML and save to 'note.xml'
convert(json_data, 'xml', output_file='note.xml')
Get Converted XML Data Without Saving:
xml_data = convert(json_data, 'xml', return_data=True)
print(xml_data)
Sample Output:
<root><note><to>Alice</to><from>Bob</from><message>Hello, Alice!</message></note></root>
Converting JSON to CSV
From a Python List of Dictionaries:
from json_to_many import convert
json_data = [
{"name": "Alice", "age": 30, "city": "New York"},
{"name": "Bob", "age": 25, "city": "Los Angeles"}
]
# Convert JSON data to CSV and save to 'data.csv'
convert(json_data, 'csv', output_file='data.csv')
Get Converted CSV Data Without Saving:
csv_data = convert(json_data, 'csv', return_data=True)
print(csv_data)
Sample Output:
name,age,city
Alice,30,New York
Bob,25,Los Angeles
Note: The CSV converter automatically flattens nested JSON structures and handles complex data types appropriately.
Examples
The examples directory contains sample scripts and data to help you get started.
- JSON to Markdown Conversion: json_to_markdown_example.py
- JSON to XML Conversion: json_to_xml_example.py
- JSON to CSV Conversion: json_to_csv_example.py
Running Examples
-
Clone the Repository:
git clone https://github.com/ananthanandanan/Json_To_Many.git cd Json_To_Many/examples
-
Install Dependencies (for development):
uv syncOr install the package directly:
pip install json_to_many
-
Run an Example Script:
uv run python json_to_markdown_example.py # or if installed globally: python json_to_markdown_example.py
Development
The project uses uv for dependency management and packaging, and Ruff for linting and code style enforcement.
Setting Up a Development Environment
-
Fork the Repository:
Click the "Fork" button at the top right corner of the repository page.
-
Clone Your Fork:
git clone https://github.com/ananthanandanan/Json_To_Many.git cd Json_To_Many
-
Install Dependencies:
uv sync -
Run Tests:
uv run pytest
-
Check Code Quality with Ruff:
uv run ruff check .
-
Build the Package:
uv build
Coding Guidelines
- Code Style: Follow PEP 8 guidelines. Use Ruff for linting and code style enforcement.
- Testing: Write unit tests for new features and bug fixes.
- Documentation: Update documentation and examples to reflect changes.
Contributing
Contributions are welcome! Here's how you can help:
- Report Bugs: If you find a bug, please report it by opening an issue.
- Suggest Features: Have an idea for a new feature? Feel free to share it.
- Submit Pull Requests: If you'd like to fix a bug or implement a feature, you're welcome to contribute code.
Guidelines for Contributing
-
Create an Issue:
Before starting work on a feature or bug fix, please create an issue to discuss it.
-
Branch Naming:
Use descriptive branch names, e.g.,
feature/json-to-yamlorbugfix/fix-xml-output. -
Pull Requests:
- Include a clear description of the changes.
- Reference the issue number.
- Ensure all tests pass and code quality checks are successful.
-
Code Quality:
- Run
uv run pytestto ensure all tests pass. - Run
uv run ruff check .to ensure code style compliance.
- Run
For detailed technical specifications, implementation timelines, and architecture diagrams, see our comprehensive ROADMAP.md.
Want to contribute to this roadmap? Check out our Contributing guidelines or open an issue to discuss new ideas!
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contact
For questions or support, please open an issue or contact K N Anantha nandanan.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file json_to_many-0.1.0.tar.gz.
File metadata
- Download URL: json_to_many-0.1.0.tar.gz
- Upload date:
- Size: 9.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c268a4a24af8f6e1ddf544e4762cb3947076e66b765ce077dab2904ec1f7a37f
|
|
| MD5 |
7984f7bbc31a715f3ae4084fdfb934e6
|
|
| BLAKE2b-256 |
54fccac8a7cd39577ccf84f4bcf7894c87b8538d65c8f00d406823aed9ff5aa2
|
File details
Details for the file json_to_many-0.1.0-py3-none-any.whl.
File metadata
- Download URL: json_to_many-0.1.0-py3-none-any.whl
- Upload date:
- Size: 15.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
799bf0c71673d38318af3d05926c99cdf483a8df4f73197af777927defa24455
|
|
| MD5 |
8b354f4e0c047c6f0e95e26d343eecaf
|
|
| BLAKE2b-256 |
d295c2f77cf6f3ee65b16c4361fb2761a21ce92ccaa73c9c19ce62445acb98f4
|