From eea17dc884c0eee5fffeab28bccc7aaa6a0a0643 Mon Sep 17 00:00:00 2001 From: varnitsingh Date: Fri, 2 Oct 2020 17:25:01 +0530 Subject: [PATCH] Added an option to only select required fields --- json_to_csv.py | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/json_to_csv.py b/json_to_csv.py index 29a3cf2..04dd4ef 100644 --- a/json_to_csv.py +++ b/json_to_csv.py @@ -59,8 +59,9 @@ def reduce_item(key, value): if __name__ == "__main__": - if len(sys.argv) != 4: + if len(sys.argv) < 4: print ("\nUsage: python json_to_csv.py \n") + print('Usage with limited fields: python json_to_csv.py ') else: #Reading arguments node = sys.argv[1] @@ -79,7 +80,22 @@ def reduce_item(key, value): processed_data = [] header = [] + + acceptable_keys = [] + #reading the field that needs to be saved + if len(sys.argv) > 4: + for i in range(4,len(sys.argv)): + acceptable_keys.append(sys.argv[i]) + print('Only copying from: ',end='') + print(acceptable_keys) + for item in data_to_be_processed: + if len(sys.argv) > 4: + all_keys = list(item.keys()) + delete_keys = list(set(all_keys)-set(acceptable_keys)) + for key in delete_keys: #delete the keys not mentioned in command line + del item[key] + reduced_item = {} reduce_item(node, item) @@ -96,4 +112,4 @@ def reduce_item(key, value): for row in processed_data: writer.writerow(row) - print ("Just completed writing csv file with %d columns" % len(header)) + print ("Just completed writing csv file with %d columns" % len(header)) \ No newline at end of file