A beautiful GUI application built with Python Tkinter for converting JSON files to CSV format.
- Modern GUI Interface: Clean and intuitive design with progress tracking
- Batch Processing: Convert up to 50 JSON files at once
- File Management: Easy file selection, removal, and clearing
- Output Control: Choose your desired output folder
- Progress Tracking: Real-time progress bar and status updates
- Error Handling: Comprehensive error reporting with detailed results
- Multi-threading: Non-blocking conversion process
- Python 3.6 or higher
- tkinter (usually comes with Python)
- pandas
- json (built-in)
- csv (built-in)
- threading (built-in)
- pathlib (built-in)
- Go to the Releases page
- Download the latest
JSON_to_CSV_Converter.exe
file - Run the executable directly - no installation required!
-
Clone or download this repository:
git clone https://github.com/brewmecoffee/json-to-csv-converter.git cd json-to-csv-converter
-
Install required dependencies:
pip install -r requirements.txt
-
Run the application:
python json_to_csv_converter.py
- Add Files: Click "Add JSON Files" to select your JSON files (max 50)
- Choose Output: Click "Browse" to select an output folder for the CSV files
- Convert: Click "Convert to CSV" to start the conversion process
- Monitor: Watch the real-time progress and view results in the results section
- Array of Objects:
[{"key": "value"}, {"key": "value"}]
- Single Object:
{"key": "value", "nested": {"key": "value"}}
- Nested Objects: Automatically flattened using pandas.json_normalize()
Input JSON:
[
{
"id": 1,
"name": "John Doe",
"email": "john.doe@example.com",
"age": 30,
"address": {
"street": "123 Main St",
"city": "New York"
}
}
]
Output CSV:
id,name,email,age,address.street,address.city
1,John Doe,john.doe@example.com,30,123 Main St,New York
- File Selection: Supports multiple file selection with validation
- Progress Tracking: Real-time progress bar and status messages
- Error Handling: Detailed error messages for failed conversions
- Results Display: Shows successful and failed conversions
- Threading: Conversion runs in background to keep GUI responsive
- Nested JSON: Automatically flattens nested structures
To create your own executable:
-
Install PyInstaller:
pip install pyinstaller
-
Build the executable:
pyinstaller JSON_to_CSV_Converter.spec
The executable will be created in the dist/
folder.
This project is open source and available under the MIT License.
Contributions are welcome! Please feel free to submit a Pull Request.
If you encounter any issues or have questions, please open an issue on GitHub.
Made with ❤️ for easy JSON to CSV conversion