import os
import json
import pandas as pd
def ls_to_excel(ls_output, use_latest=True):
"""
convert labels studio to excel
Args:
ls_output ([type]): [description]
use_latest (bool, optional): [description]. Defaults to True.
Returns:
[type]: [description]
"""
name = ls_output["data"]["ocr"]
filename = os.path.basename(name)
if use_latest is True:
annotations = ls_output["annotations"][-1]["result"]
else:
annotations = ls_output["annotations"][0]["result"]
text_groups = {}
label_groups = {}
for annotation in annotations:
value = annotation["value"]
annotation_id = annotation["id"]
if "labels" in value:
label_groups[annotation_id] = annotation
if "text" in value:
text_groups[annotation_id] = annotation
values = {}
values['filename'] = filename
for annotation_id, label_annotation in label_groups.items():
label = label_annotation["value"]["labels"][0]
if annotation_id in text_groups:
text_annotation = text_groups[annotation_id]
text = text_annotation["value"]["text"][0]
else:
text = None
values[label] = text
return values
ls_results = json.load(open(r'C:\Users\cheches\Downloads\asc_back_of_cheques_test_set_label_studio.json', 'r'))
rows = []
for output in ls_results:
row = ls_to_excel(output)
rows.append(row)
rows = pd.DataFrame(rows)
rows.to_csv(r'C:\Users\cheches\Downloads\asc_back_of_cheques_test_set_label_studio.csv', index=None)