回答編集履歴

1

修正

2021/09/15 14:34

投稿

退会済みユーザー
test CHANGED
@@ -1,3 +1,77 @@
1
+ 対策
2
+
3
+ ---
4
+
5
+ まだ途中ですが、読み込んだ時にYAMLのFLOATでINFの時に、何行目かを出せるとこまで来ました。
6
+
7
+ あとはその行数の時に力業で値をSTRINGに差し替えればいけそうな気がします。
8
+
9
+
10
+
11
+ ```YAML
12
+
13
+ hoge: 1e1000
14
+
15
+ hoge1: 1e2
16
+
17
+ ```
18
+
19
+
20
+
21
+ ```Python3
22
+
23
+ from ruamel.yaml import YAML
24
+
25
+ import ruamel.yaml
26
+
27
+ yaml = YAML()
28
+
29
+
30
+
31
+ with open("example_in.yaml", 'rt') as f:
32
+
33
+ data = yaml.load(f)
34
+
35
+
36
+
37
+ # print(data)
38
+
39
+ # ordereddict([('hoge', inf)])
40
+
41
+
42
+
43
+ for i,d in enumerate(data):
44
+
45
+ if (type(data[d]) == ruamel.yaml.scalarfloat.ScalarFloat) and (str(data[d]) == "inf"):
46
+
47
+ print("[INF DETECTED!] Line:",i, "INDEDX:",d)
48
+
49
+ else:
50
+
51
+ print(d,data[d])
52
+
53
+
54
+
55
+
56
+
57
+ # with open("example_out.yaml", 'w') as f:
58
+
59
+ # yaml.dump(data, f)
60
+
61
+
62
+
63
+ ```
64
+
65
+
66
+
67
+
68
+
69
+
70
+
71
+ 駄目な投稿
72
+
73
+ ---
74
+
1
75
  > yamlファイルをloadする際、inf判定の代わりに文字列へ変換する
2
76
 
3
77