Spaces:
Runtime error
Runtime error
from functools import reduce | |
from data.field.mini_torchtext.example import Example | |
def example_from_json(obj, fields): | |
ex = Example() | |
for key, vals in fields.items(): | |
if vals is not None: | |
if not isinstance(vals, list): | |
vals = [vals] | |
for val in vals: | |
# for processing the key likes 'foo.bar' | |
name, field = val | |
ks = key.split(".") | |
def reducer(obj, key): | |
if isinstance(obj, list): | |
results = [] | |
for data in obj: | |
if key not in data: | |
# key error | |
raise ValueError("Specified key {} was not found in " "the input data".format(key)) | |
else: | |
results.append(data[key]) | |
return results | |
else: | |
# key error | |
if key not in obj: | |
raise ValueError("Specified key {} was not found in " "the input data".format(key)) | |
else: | |
return obj[key] | |
v = reduce(reducer, ks, obj) | |
setattr(ex, name, field.preprocess(v)) | |
return ex | |