import json res = {} with open('artifact.json', 'r', encoding='utf8') as f: j = json.load(f) data = j['data'] keys = [j['keys']] * len(data) for k_array, v_array in zip(keys, data): tmp = {} for k, v in zip(k_array, v_array): tmp[k] = v res[tmp['id']] = tmp with open('artifact.json', 'w', encoding='utf8') as f: json.dump(res, f)