如何在 Django 中序列化 NumPy 數組以實現 JSON 相容性?

Mary-Kate Olsen
發布: 2024-11-03 16:06:30
原創
668 人瀏覽過

How to Serialize NumPy Arrays in Django for JSON Compatibility?

Django 的NumPy 陣列序列化問題

在Django 上下文中使用NumPy 陣列時,您可能會遇到錯誤,指出該數組不是JSON可序列化。發生這種情況是因為 NumPy 陣列預設無法直接以 JSON 格式表示。

序列化說明

序列化涉及將物件轉換為可以傳輸的格式網路或持久儲存。 JSON(JavaScript 物件表示法)是一種流行的資料格式,可用於這兩個目的。但是,儲存在 NumPy 原生資料結構(與記憶體最佳化一致)中的陣列與 JSON 的格式不相容。

解決方案:轉換為列表

要解決此問題,您可以使用 .tolist() 方法將 NumPy 數組轉換為嵌套列表。此過程建立一個本質上與 JSON 序列化相容的列表結構。

程式碼範例

以下是在Python 中序列化和反序列化NumPy 數組的範例:

<code class="python">import numpy as np
import codecs, json

# Create a 2D NumPy array
a = np.arange(10).reshape(2, 5)

# Convert the array to a list
b = a.tolist()

# Serialize the list using JSON
json.dump(b, codecs.open('path.json', 'w', encoding='utf-8'),
          separators=(',', ':'),
          sort_keys=True,
          indent=4)

# De-serialize the JSON back to a NumPy array
obj_text = codecs.open('path.json', 'r', encoding='utf-8').read()
b_new = json.loads(obj_text)
a_new = np.array(b_new)</code>
登入後複製

此過程將NumPy 陣列轉換為可透過網路傳輸的格式,並隨後重建為其原始形式。

以上是如何在 Django 中序列化 NumPy 數組以實現 JSON 相容性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板