diff options
Diffstat (limited to 'scripts/json2csv.py')
-rwxr-xr-x | scripts/json2csv.py | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/scripts/json2csv.py b/scripts/json2csv.py deleted file mode 100755 index a06a135..0000000 --- a/scripts/json2csv.py +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright (c) 2012-2017 Weitian LI <liweitianux@live.com> -# MIT license -# -# Convert JSON to CSV format -# -# References: -# [1] https://docs.python.org/3/library/json.html -# [2] https://docs.python.org/3/library/csv.html -# [3] http://stackoverflow.com/questions/1871524/convert-from-json-to-csv-using-python -# [4] http://json.parser.online.fr/ -# -# -# Weitian LI <liweitianux@live.com> -# Created: 2012-08-31 -# -# Change logs: -# 2017-02-06, Weitian LI -# * Use `argparse` -# * Cleanups -# v3.5, 2015-11-09 -# * Get column keys from the first input json block -# * Use python3 -# v3.4, 2015-11-09 -# * Add keys 'XPEAK_RA', 'XPEAK_DEC', and 'XPEAK_XCNTRD_dist (pix)' -# * Add 'colkeys' to record CSV column keys -# * Update file header description -# v3.3, 2013-10-14 -# * add key `Unified Name' -# v3.2, 2013-05-29 -# * add key `XCNTRD_RA, XCNTRD_DEC' -# v3.1, 2013-05-18 -# * add key `Feature', corresponding to `collectdata_v3.1' - -import os -import argparse -import csv -import json -from collections import OrderedDict - - -def main(): - parser = argparse.ArgumentParser(description="Convert JSON to CSV") - parser.add_argument("infile", help="Input JSON file") - parser.add_argument("outfile", nargs="?", - help="Output CSV file (default to use the same " + - "basename as the input file)") - args = parser.parse_args() - - with open(args.infile) as f: - # Use `OrderedDict` to keep the orders of keys of all json files - data = json.load(f, object_pairs_hook=OrderedDict) - - # Column keys - colkeys = list(data[0].keys()) - - if args.outfile: - outfile = args.outfile - else: - outfile = os.path.splitext(args.infile)[0] + ".csv" - with open(outfile, "w") as csvfile: - outfile_writer = csv.writer(csvfile) - # CSV header row - outfile_writer.writerow(colkeys) - # CSV data rows - for row in data: - outfile_writer.writerow([row.get(key) for key in colkeys]) - - -if __name__ == "__main__": - main() - -# vim: set ts=4 sw=4 tw=0 fenc=utf-8 ft=python: # |