回答編集履歴

4

追記

2019/04/13 07:19

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -57,3 +57,9 @@
57
57
  return True
58
58
 
59
59
  ```
60
+
61
+
62
+
63
+ あるいは辞書を作るとき、空白のみの文字列を書き込まずにNoneを使うようにしても良いです。
64
+
65
+ これなら `if not dic.get('test'):` で済みます。

3

修正

2019/04/13 07:18

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -48,7 +48,7 @@
48
48
 
49
49
 
50
50
 
51
- if value.strip() == "":
51
+ if value.strip() == '':
52
52
 
53
53
  return False
54
54
 

2

追記

2019/04/13 07:14

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -9,3 +9,51 @@
9
9
 
10
10
 
11
11
  引用元:[Python 標準ライブラリ » 組み込み型 - マッピング型 --- dict](https://docs.python.org/ja/3/library/stdtypes.html#dict.get)
12
+
13
+
14
+
15
+ コメントを受けて
16
+
17
+ ---
18
+
19
+ > dic = {"hello": "hello"}
20
+
21
+ dic = {"test": ""}
22
+
23
+ dic = {"test": " "}
24
+
25
+ dic = {"test": None}
26
+
27
+ 挙げているdicのパターンはすべてerrorにしたいです
28
+
29
+
30
+
31
+ 条件が複雑で面倒なので、判定用の関数を用意しましょう。
32
+
33
+ ```Python
34
+
35
+ def is_valid_dic(dic):
36
+
37
+ if 'test' not in dic:
38
+
39
+ return False
40
+
41
+
42
+
43
+ value = dic['test']
44
+
45
+ if value is None:
46
+
47
+ return False
48
+
49
+
50
+
51
+ if value.strip() == "":
52
+
53
+ return False
54
+
55
+
56
+
57
+ return True
58
+
59
+ ```

1

修正

2019/04/13 07:14

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -1 +1,11 @@
1
- `if dic.get('test') == "":` とかですかね。
1
+ `if dic.get('test') == '':` とかですかね。
2
+
3
+
4
+
5
+ > ######get(key[, default])
6
+
7
+ key が辞書にあれば key に対する値を、そうでなければ default を返します。 default が与えられなかった場合、デフォルトでは None となります。そのため、このメソッドは KeyError を送出することはありません。
8
+
9
+
10
+
11
+ 引用元:[Python 標準ライブラリ » 組み込み型 - マッピング型 --- dict](https://docs.python.org/ja/3/library/stdtypes.html#dict.get)