错误描述:使用如下方法将内容以json格式写入:
def write_merged_dataset(feature_test, bert_predictions, label_test, test_data_path):
with open(test_data_path, 'w', encoding='utf-8') as fp:
for idx in range(len(label_test)):
line = {}
line['id'] = str(idx)
for i, feature in enumerate(feature_test[idx]):
line['x%d' % i] = feature
line['bert_predictions'] = bert_predictions[idx]
line['label'] = label_test[idx]
fp.write(json.dumps(line) + '\n')
print('data stored at ', test_data_path)
return True
结果报错:
TypeError: Object of type 'int64' is not JSON serializable
原因是我传入的bert_predictions参数是一个numpy.array,而numpy数组存储整数时是以class <numpy.int64>,无法被json序列化。
解决方法:转成list再处理
|