【发布时间】:2014-03-03 18:13:38
【问题描述】:
我在一个变量中加载了一个字典,如下所示
>>constellation_dict["AND"]
array([[ 2.35357132e+01, 3.51897736e+01],
[ 2.34684925e+01, 3.51880264e+01],
[ 2.34012642e+01, 3.51860695e+01],
[ 2.33340359e+01, 3.51838989e+01],
[ 2.32668228e+01, 3.51815186e+01],
....
[ 2.36029453e+01, 3.51913109e+01]])
字典有 arround 88 个键,每个值都是由十分之一对数组组成的。所有数据都是不变的(对应星座边框)
目前我可以使用 pickle 方法加载(并最终保存)。我的问题是:有没有办法将它存储为 python 代码或类似代码,这样我就可以将它作为模块部分加载,而不必每次调用模块时都读取文件?
我尝试使用 json 模块将其转换为简单代码,但它说“对象不可序列化”。
顺便说一下,这些是我目前用来加载/保存字典的方法
import pickle
def save_obj(obj, name, protocol = pickle.HIGHEST_PROTOCOL):
with open('obj/'+ name + '.pkl', 'wb') as f:
#posible alternative protocol 0 (text_format)
pickle.dump(obj, f, protocol)
def load_obj(name ):
with open('obj/' + name + '.pkl', 'r') as f:
return pickle.load(f)
constellation_dictionary = load_obj('const_dict.dat')
【问题讨论】:
-
那不是字典,充其量只是一个 Numpy 数组。
-
你那里没有字典,我想知道你叫什么'key'和'value'......
-
既然你只是想把它变成 Python 可解释的代码,你为什么不直接做
str(constellation_dictionary)呢?
标签: python dictionary pickle