Сохранить dict np-массивов в файл json

#python #json #dictionary #np

#python #json #словарь #np

Вопрос:

У меня есть следующий dict:

 pts_final_dict
Out[4]: 
{'Zone1': array([[ 40,   0],
        [234, 178],
        [265, 181],
        [312, 181],
        [353, 177],
        [480,   0]]),
 'Zone2': array([[480,   0],
        [520, 173],
        [599, 174],
        [666, 175],
        [724, 182],
        [920,   0]]),
 'Zone3': array([[234, 178],
        [265, 181],
        [312, 181],
        [353, 177],
        [480, 480],
        [ 40, 480]]),
 'Zone4': array([[520, 173],
        [599, 174],
        [666, 175],
        [724, 182],
        [920, 480],
        [480, 480]])}
 

Я никогда раньше не использовал json, поэтому моя первая попытка такова:

 import json
out_file = open("myfile.json", "w") 
json.dump(pts_final_dict, out_file, indent = 6) 
out_file.close() 
 

Я получаю сообщение об ошибке:

Ошибка типа: объект типа ndarray не является сериализуемым в формате JSON.

Как я могу это исправить? Я хочу сохранить этот dict в json-файле, чтобы я мог снова использовать его в другом скрипте. Спасибо

Ответ №1:

попробуйте изменить тип значений (numpy array на list):

 pts_final_dict = {k:v.tolist() for k,v in pts_final_dict.items()}