teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

2023/01/10 03:03

投稿

melian
melian

スコア21285

answer CHANGED
@@ -1,16 +1,39 @@
1
- 正規表現を使って該当部分を抽出、`ast.literal_eval`リストに変換します。
1
+ > pickle形式保存はています。
2
+
2
3
  ```python
3
- from ast import literal_eval
4
+ import numpy as np
4
- import re
5
+ import pickle
5
- import sys
6
6
 
7
- with open('dic.txt', 'r') as f:
7
+ dic1 = {'data': np.random.random((10, 10))}
8
- data = f.read()
9
8
 
10
- text = re.search(r"'data':\s*array\((\[\[.+?\]\])", data, re.DOTALL)
11
- if text is None:
9
+ # save to file
12
- print('Not found', file=sys.stderr)
10
+ with open('dic.pkl', 'wb') as d:
11
+ pickle.dump(dic1, d)
13
12
 
13
+ # load from pickle
14
+ with open('dic.pkl', 'rb') as d:
14
- lst = literal_eval(text.group(1))
15
+ dic2 = pickle.load(d)
16
+
15
- print(lst)
17
+ print(dic2)
18
+
19
+ # {'data': array([[0.20170392, 0.90583187, 0.18414392, 0.76081654, 0.20927014,
20
+ # 0.98632377, 0.32868586, 0.37445472, 0.5377807 , 0.8179061 ],
21
+ # [0.79281506, 0.21883116, 0.76909922, 0.41962061, 0.53438414,
22
+ # 0.04514022, 0.61634236, 0.21153664, 0.86448652, 0.52403108],
23
+ # [0.49478467, 0.01790309, 0.66736632, 0.2112874 , 0.32480045,
24
+ # 0.04151275, 0.56353881, 0.80462731, 0.46323398, 0.5435202 ],
25
+ # [0.77760522, 0.39473601, 0.36113428, 0.2359474 , 0.6172297 ,
26
+ # 0.40720505, 0.74596252, 0.6661532 , 0.90348978, 0.39357431],
27
+ # [0.98048515, 0.6621397 , 0.05598788, 0.28736663, 0.29562323,
28
+ # 0.18108173, 0.64550732, 0.92116465, 0.53625469, 0.86499978],
29
+ # [0.57147806, 0.93979406, 0.57044045, 0.00937326, 0.96359749,
30
+ # 0.84189956, 0.34475317, 0.10136875, 0.12466955, 0.48294194],
31
+ # [0.95786819, 0.49025857, 0.85633094, 0.6236563 , 0.29051137,
32
+ # 0.3307404 , 0.90773032, 0.21529087, 0.0907701 , 0.31616569],
33
+ # [0.99510191, 0.0319623 , 0.30372174, 0.32812748, 0.01496206,
34
+ # 0.04875215, 0.00139725, 0.44600808, 0.23257516, 0.95688275],
35
+ # [0.83007634, 0.92031762, 0.35088282, 0.97983914, 0.51630558,
36
+ # 0.31611589, 0.15175934, 0.04095449, 0.29034966, 0.90216368],
37
+ # [0.76692667, 0.83758183, 0.35114362, 0.18319582, 0.83881383,
38
+ # 0.37064127, 0.78777244, 0.10778838, 0.23120286, 0.7181491 ]])}
16
- ```
39
+ ```