有没有办法将列表嵌入或集成到.py文件中?
我有一个字典列表,存储在磁盘上hypotheses.npz
,打印时看起来像这样(前两个元素):
[[ {'d3': 936.0, 'v': 110.89930725097656, 'c1': 4.5781828608194246, 'c0': -0.11199983705745155, 'd2': 1041.0, 'd4': 495.0, 'fn_def': array([/Desktop/example/behaviors.pyc,
BGL_Day_Av, [1482, 1483, 1484]], dtype=object), 'd1': 493.0}]
[ {'d3': 949.0, 'v': 109.9293212890625, 'c1': 4.7908983437736889, 'c0': -0.097829151375310855, 'd2': 1054.0, 'd4': 831.0, 'fn_def': array([/Desktop/example/behaviors.pyc,
BGL_Day_Av, [966, 967, 968]], dtype=object), 'd1': 321.0}]]
我想要第二个.py文件来使用它,但是我想让该文件可移植,所以我不想从磁盘读取这个.npz文件。将列表静态写入python文件并给它一些可以在最终脚本中使用的名称的最佳方法是什么?
答案 0 :(得分:2)
您可以序列化列表对象并嵌入字符串:
import pickle
lst = [[ {'d3': 936.0, 'd2': 1041.0, 'd4': 495.0} ]]
print 'pickle_string = """'+ pickle.dumps(lst) +'"""'
输出:
pickle_string = """(lp0
(lp1
(dp2
S'd4'
p3
F495.0
sS'd2'
p4
F1041.0
sS'd3'
p5
F936.0
saa."""
Unpickle with:
lst = pickle.loads(pickle_string)