# HG changeset patch # User nml # Date 1520440746 18000 # Node ID 1165102056178898f7bd724f4e353812f4fcb243 planemo upload commit dd7f4dc22bbe2f26aafd07a345997db79d9e5ad1 diff -r 000000000000 -r 116510205617 combineJSON.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/combineJSON.py Wed Mar 07 11:39:06 2018 -0500 @@ -0,0 +1,51 @@ +#!/usr/bin/env python +import argparse +import json +import sys + + +def init_parser(): + parser = argparse.ArgumentParser( + prog="combineJSON", + formatter_class=argparse.RawDescriptionHelpFormatter, + description="Combine JSON data arrays into a single array") + parser.add_argument('-i', + nargs='*', + help="Input JSON files to be combined") + parser.add_argument('-o', + help='Output file name') + return parser + + +parser = init_parser() +args = parser.parse_args() +input_files = args.i +json_file = [] + +if input_files is None or len(input_files) < 2: + print('Not enough input files. ' + 'Please use -i filename.txt filename1.txt ' + 'to combine JSON data files') + sys.exit(0) + + +for file_path in input_files: + try: + # Attempt to open each input file, parse as JSON + with open(file_path, 'r') as curr_file: + file_data = curr_file.read() + parsed_json_file = json.loads(file_data) + # Append each valid JSON data array + for entry in parsed_json_file: + json_file.append(entry) + except Exception as e: + print("Help! I can't parse this file {}. " + "Are you sure this is a valid JSON file?" + .format(file_path)) + raise(e) + +if args.o: + with open(args.o, 'w') as out_json: + json.dump(json_file, out_json) +else: + print(json.dumps(json_file)) diff -r 000000000000 -r 116510205617 combineJSON.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/combineJSON.xml Wed Mar 07 11:39:06 2018 -0500 @@ -0,0 +1,77 @@ + + Combine multiple JSON Arrays + + + + + + + + + + + + + + + + + + + + + @ARTICLE{a1, + title = {JSON Combine} + author = {Matthew Gopez} + } + } + + \ No newline at end of file diff -r 000000000000 -r 116510205617 test-data/json1.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/json1.json Wed Mar 07 11:39:06 2018 -0500 @@ -0,0 +1,3 @@ +[ + {"hello": "world"} +] \ No newline at end of file diff -r 000000000000 -r 116510205617 test-data/json2.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/json2.json Wed Mar 07 11:39:06 2018 -0500 @@ -0,0 +1,3 @@ +[ + {"wheels": "sick"} +] \ No newline at end of file diff -r 000000000000 -r 116510205617 test-data/jsoncombined.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/jsoncombined.json Wed Mar 07 11:39:06 2018 -0500 @@ -0,0 +1,1 @@ +[{"hello": "world"}, {"wheels": "sick"}] \ No newline at end of file