Python数组的读写列表
嘿,我是python新手,正在从事某个项目,我有一个数组列表,如-Python数组的读写列表,python,arrays,json,Python,Arrays,Json,嘿,我是python新手,正在从事某个项目,我有一个数组列表,如- some_list = [array([-12, 23]), array([-13, 22])] 这些数组表示某些内容的唯一属性。因此,我想将其保存在一个类似Json的文件中,并为每个数组分配一些Id,然后将其提取回相同的数组列表。Json模块只知道如何处理它映射到基本Json类型的基本Python类型-列表,dict,str,float,bool,和NoneType 但您可以覆盖JSON编码器和解码器对象,以添加代码,以任意
some_list = [array([-12, 23]), array([-13, 22])]
这些数组表示某些内容的唯一属性。因此,我想将其保存在一个类似Json的文件中,并为每个数组分配一些Id,然后将其提取回相同的数组列表。Json模块只知道如何处理它映射到基本Json类型的基本Python类型-
列表
,dict
,str
,float
,bool
,和NoneType
但您可以覆盖JSON编码器和解码器对象,以添加代码,以任意方式处理其他类型。这是,但并不完全是微不足道的
但是,更简单地说,如果您知道要保存和加载的数据的结构,就可以动态地对其进行转换。例如:
def save_stuff(f, list_of_arrays):
list_of_lists = [list(arr) for arr in list_of_arrays]
json.dump(f, list_of_lists)
def load_stuff(f):
list_of_lists = json.load(f)
list_of_arrays = [np.array(lst) for lst in list_of_lists]
return list_of_arrays
或者,您可以反向操作:将数组列表转换为数组数组,然后使用Numpy保存该数组
无论哪种方式,这都会降低效率,因为您必须创建这些临时列表。如果你有巨大的数组,或者你做了无数次,你可能会想做更复杂的工作来覆盖编码器和解码器。这些是Numpy数组、stdlib
array.array
s还是其他什么?是的,它们是Numpy数组。另外,你说的“分配给每个数组的一些Id”是什么意思?让它们按照原始列表的顺序返回是有意义的,但您不需要ID,而且很难看到您对它们做了什么您只想在存储和加载它们时保持顺序,这正是将Python列表
保存为JSON数组
时发生的情况。这些数组表示一些已知对象的属性。现在,我想将它们保存在一个文件中,当我得到一个未知对象时,我想将它与存储的数组列表进行比较,如果匹配,则返回其id,或者将其附加到具有唯一id的列表中。相关(?)。。还有其他的。