mirror of
https://github.com/metafy-social/python-scripts.git
synced 2024-11-23 20:11:10 +00:00
Added JSON to Excel converter
This commit is contained in:
parent
7fd26250cd
commit
ee8042c712
13
scripts/json-to-excel/README.md
Normal file
13
scripts/json-to-excel/README.md
Normal file
|
@ -0,0 +1,13 @@
|
|||
# JSON to Excel converter
|
||||
|
||||
This is a simple Python script to convert a JSON file to an Excel file.
|
||||
|
||||
## Usage
|
||||
|
||||
```bash
|
||||
# install xlwt
|
||||
pip install xlwt
|
||||
|
||||
# run script
|
||||
python main.py <JSON_FILE_PATH>
|
||||
```
|
54
scripts/json-to-excel/main.py
Normal file
54
scripts/json-to-excel/main.py
Normal file
|
@ -0,0 +1,54 @@
|
|||
import json
|
||||
import xlwt
|
||||
import sys
|
||||
import os
|
||||
from collections import defaultdict
|
||||
|
||||
if sys.argv[1] == "help":
|
||||
print("Usage:\n\tjsonToExcel.py json_file.json")
|
||||
sys.exit(1)
|
||||
|
||||
if not os.path.exists(sys.argv[1]):
|
||||
print("Cannot open " + sys.argv[1])
|
||||
sys.exit(1)
|
||||
|
||||
file_name = sys.argv[1]
|
||||
file_extenstion = file_name.split(".")[-1]
|
||||
|
||||
if not file_extenstion in ("json"):
|
||||
print("The extension of JSON file is incorrect")
|
||||
sys.exit(1)
|
||||
|
||||
file = open(file_name)
|
||||
json_text = file.read()
|
||||
|
||||
try:
|
||||
imported_json = defaultdict(json.loads(json_text))
|
||||
except:
|
||||
print("The content of the JSON file is incorrect")
|
||||
sys.exit(1)
|
||||
|
||||
workbook = xlwt.Workbook()
|
||||
worksheet = workbook.add_sheet("json exported")
|
||||
|
||||
columns = list(imported_json[0].keys())
|
||||
|
||||
i = 0
|
||||
for column in columns:
|
||||
worksheet.write(0, i, column)
|
||||
i += 1
|
||||
|
||||
j = 1
|
||||
for row in imported_json:
|
||||
i = 0
|
||||
for column in columns:
|
||||
worksheet.write(j, i, row[column])
|
||||
i += 1
|
||||
j += 1
|
||||
|
||||
try:
|
||||
workbook.save(file_name.split(".")[0] + ".xls")
|
||||
sys.exit(0)
|
||||
except:
|
||||
print("Cannot create the xls file")
|
||||
sys.exit(1)
|
Loading…
Reference in New Issue
Block a user