我正在为仿真生成一些数组,我想将它们保存在JSON文件中。我正在使用jsonpickle库。
问题是我需要保存的阵列的大小可能非常大(数百MB到某些GB)。因此,我需要在数组生成后立即将每个数组保存到JSON文件。
基本上,我正在生成多个独立的大型数组,将它们存储在另一个数组中,并在生成所有数组之后将其保存到JSON文件中:
N = 1000 # Number of arrays
z_NM = np.zeros((64000,1), dtype=complex) # Large array
z_NM_array = np.zeros((N,64000,1), dtype=complex) # Array of z_NM arrays
for in range(0, N):
z_NM[:,0] = GenerateArray() # Generate array and store it in z_NM_array
z_NM_array[i] = z_NM
# Write data to JSON file
data = {"z_NM_array": z_NM_array}
outdata = json.encode(data)
with open(filename, "wb+") as f:
f.write(outdata.encode("utf-8"))
f.close()
我想知道是否可以通过在for循环内将每个数组生成后立即将每个数组写入文件来将新数据附加到现有JSON文件中?如果是这样,怎么办?又如何读回呢?也许使用的库不同于jsonpickle?
我知道我可以将每个数组保存在单独的文件中,但是我想知道是否有一种解决方案可以让我使用单个文件。我在字典中也有一些设置,要与数组一起保存。