處理JSON 的NumPy 陣列序列化
使用Django 框架在Web 開發中使用NumPy 陣列時,您可能會遇到錯誤群組:您可能會遇到錯誤群組:您可能會遇到錯誤群組:您可能會遇到錯誤群組:您可能會遇到錯誤群組:您可能會遇到錯誤群組:您可能會遇到錯誤群組:當您
array([ 0, 239, 479, 717, 952, 1192, 1432, 1667], dtype=int64) is not JSON serializable
出現此錯誤是因為NumPy數組預設不可 JSON 序列化。 JSON 是一種流行的資料交換格式,僅支援某些資料類型,例如整數、字串和這些類型的陣列。但是,NumPy 數組是複雜的多維對象,無法直接用 JSON 表示。
解決方案:將 NumPy 陣列轉換為 JSON
要解決此問題,您可以將 NumPy 陣列轉換為 JSON 相容的表示形式。建議的方法是在數組上使用 .tolist() 方法:
<code class="python">import numpy as np a = np.arange(10).reshape(2,5) # Create a 2x5 array b = a.tolist() # Convert to a list of lists</code>
.tolist() 方法將 NumPy 數組轉換為嵌套的元素列表,與 JSON 相容。
儲存並載入JSON 資料
要將轉換後的清單儲存為JSON 格式,請使用以下程式碼:
<code class="python">import codecs, json file_path = "/path/to/file.json" json.dump(b, codecs.open(file_path, 'w', encoding='utf-8'), separators=(',', ':'), sort_keys=True, indent=4)</code>
此程式碼將儲存將b 作為具有正確格式的指定路徑中的JSON 檔案列出。
從 JSON 檔案載入並重建 NumPy 陣列:
<code class="python">new_b = json.loads(codecs.open(file_path, 'r', encoding='utf-8').read()) new_a = np.array(new_b)</code>
此程式碼讀取 JSON 檔案並將其轉換回清單 new_b 中。然後 np.array() 函數重建 NumPy 數組 new_a。
結論
透過將NumPy 陣列轉換為JSON 相容的清單並使用適當的JSON 序列化和反序列化方法,您可以有效地處理Django 上下文變數中NumPy 資料的儲存和檢索。這確保了資料可以在 Django 後端和前端之間安全且有效率地傳輸以進行渲染。
以上是如何在 Django 中序列化 JSON 的 NumPy 陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!