0

リストを .py ファイルに埋め込んだり統合したりする方法はありますか?

としてディスクに保存されている辞書のリストがあり、hypotheses.npz印刷すると次のようになります(最初の2つの要素):

[[ {'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}]]

これを使用する 2 番目の .py ファイルが必要ですが、そのファイルを移植可能にしたいので、この .npz ファイルをディスクから読み取りたくありません。リストをpythonファイルに静的に書き込み、最終的なスクリプトで使用できる名前を付ける最良の方法は何ですか?

4

1 に答える 1

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."""

次の方法で解凍します。

lst = pickle.loads(pickle_string)
于 2013-01-08T00:43:27.390 に答える