1. ホーム
  2. python

[解決済み] NumPyの配列はJSONシリアライザブルではない

2022-01-29 03:02:30

質問

NumPyの配列を作成し、Djangoのコンテキスト変数として保存した後、ウェブページを読み込む際に以下のエラーが発生します。

array([   0,  239,  479,  717,  952, 1192, 1432, 1667], dtype=int64) is not JSON serializable

これはどういうことでしょうか?

どのように解決するのですか?

np.arraysを定期的に"jsonify"しています。このように、まず配列に対して ".tolist()" メソッドを使用してみてください。

import numpy as np
import codecs, json 

a = np.arange(10).reshape(2,5) # a 2 by 5 array
b = a.tolist() # nested lists with same data, indices
file_path = "/path.json" ## your path variable
json.dump(b, codecs.open(file_path, 'w', encoding='utf-8'), 
          separators=(',', ':'), 
          sort_keys=True, 
          indent=4) ### this saves the array in .json format

配列のunjsonify"を行うには、以下を使用します。

obj_text = codecs.open(file_path, 'r', encoding='utf-8').read()
b_new = json.loads(obj_text)
a_new = np.array(b_new)