-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmerge.py
62 lines (46 loc) · 1.62 KB
/
merge.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import json
import pdb
from pprint import pprint
import argparse
import numpy as np
def attrgetter(elem):
return float(elem['ts'])
# def normalize(alist):
# for i,v in enumerate(alist):
# if(i > 0):
# if(float(alist[i]['ts']) == float(alist[i-1]['ts'])):
# new = float(alist[i]['ts']) + 0.001
# alist[i]['ts'] = format("%.3f" % (new))
parser = argparse.ArgumentParser(description='Merge JSON transcripts.')
parser.add_argument('-l','--list', nargs='+', help='<Required> Set flag', required=True)
parser.add_argument('-o','--out', help='<Required> Set flag', required=True)
args = parser.parse_args()
print(args.list)
dataList = []
for f in args.list:
with open(f) as file:
data = json.load(file)
dataList.append(data)
finalFormatArray = []
for i,v in enumerate(dataList): #data['formatArray']):
# normalize(v['formatArray'])
finalFormatArray = finalFormatArray + v['formatArray']
def insertionSort(alist):
for index in range(1,len(alist)):
currentvalue = alist[index]
position = index
while position>0 and float(alist[position-1]['ts'])>float(currentvalue['ts']):
alist[position]=alist[position-1]
position = position-1
alist[position]=currentvalue
# finalFormatArray = sorted(finalFormatArray, key=attrgetter)
insertionSort(finalFormatArray)
# import pdb
# for i,v in enumerate(finalFormatArray):
# # pdb.set_trace()
# if(finalFormatArray[i]['ts'] != dataList[0]['formatArray'][i]['ts']):
# print(i, finalFormatArray[i], dataList[0]['formatArray'][i])
a = dataList[0]
a['formatArray'] = finalFormatArray
with open(args.out, 'w') as outfile:
json.dump(a, outfile)