@@ -68,7 +68,7 @@ def find_key(self, data, key):
6868
6969 if type (elem ) is list :
7070 self ._stack_push_list_elem (elem )
71- elif type (elem ) is dict or type ( elem ) is OrderedDict :
71+ elif isinstance (elem , ( dict , OrderedDict )) :
7272 value = self ._stack_all_key_values_in_dict (key , elem )
7373 if value :
7474 for v in value :
@@ -96,7 +96,7 @@ def find_keys(self, data, keys, group=True):
9696
9797 if type (elem ) is list :
9898 self ._stack_push_list_elem (elem )
99- elif type (elem ) is dict or type ( elem ) is OrderedDict :
99+ elif isinstance (elem , ( dict , OrderedDict )) :
100100 value = self ._stack_all_keys_values_in_dict (keys , elem )
101101 if value and group :
102102 value_list .insert (0 , value )
@@ -133,7 +133,7 @@ def find_key_chain(self, data, keys):
133133
134134 if type (elem ) is list :
135135 self ._queue_push_list_elem (elem )
136- elif type (elem ) is dict or type ( elem ) is OrderedDict :
136+ elif isinstance (elem , ( dict , OrderedDict )) :
137137 if self ._queue_all_key_values_in_dict (keys [0 ], elem ):
138138 key_found = True
139139 else : # according to RFC 7159, valid JSON can also contain a
@@ -164,7 +164,7 @@ def find_key_value(self, data, key, value):
164164
165165 if type (elem ) is list :
166166 self ._stack_push_list_elem (elem )
167- elif type (elem ) is dict or type ( elem ) is OrderedDict :
167+ elif isinstance (elem , ( dict , OrderedDict )) :
168168 if self ._stack_all_key_and_value_in_dict (key , value , elem ):
169169 value_list .insert (0 , elem )
170170 else : # according to RFC 7159, valid JSON can also contain a
@@ -190,7 +190,7 @@ def find_value(self, data, value):
190190
191191 if type (elem ) is list :
192192 self ._stack_push_list_elem (elem )
193- elif type (elem ) is dict or type ( elem ) is OrderedDict :
193+ elif isinstance (elem , ( dict , OrderedDict )) :
194194 key = self ._stack_all_value_in_dict (value , elem )
195195 if key :
196196 key_list .insert (0 , key )
@@ -245,7 +245,7 @@ def _stack_all_key_values_in_dict(self, key, elem):
245245 # type: (str, dict) -> list
246246 value_list = []
247247
248- if type ( elem ) is not dict or type (elem ) is not OrderedDict :
248+ if not isinstance (elem , ( dict , OrderedDict )) :
249249 raise TypeError
250250 elif type (key ) is not str :
251251 raise TypeError
@@ -265,7 +265,7 @@ def _stack_all_keys_values_in_dict(self, keys, elem):
265265 # type: (list, dict) -> list
266266 value_list = []
267267
268- if type ( elem ) is not dict or type (elem ) is not OrderedDict :
268+ if not isinstance (elem , ( dict , OrderedDict )) :
269269 raise TypeError
270270 elif type (keys ) is not list :
271271 raise TypeError
@@ -286,7 +286,7 @@ def _stack_all_keys_values_in_dict(self, keys, elem):
286286
287287 def _stack_all_key_and_value_in_dict (self , key , value , elem ):
288288 # type: (str, Union[str, int, float, bool, None], dict) -> bool
289- if type ( elem ) is not dict or type (elem ) is not OrderedDict :
289+ if not isinstance (elem , ( dict , OrderedDict )) :
290290 raise TypeError
291291 elif type (key ) is not str :
292292 raise TypeError
@@ -306,7 +306,7 @@ def _stack_all_key_and_value_in_dict(self, key, value, elem):
306306
307307 def _stack_all_value_in_dict (self , value , elem ):
308308 # type: (Union[str, int, float, bool, None], dict) -> str
309- if type ( elem ) is not dict or type (elem ) is not OrderedDict :
309+ if not isinstance (elem , ( dict , OrderedDict )) :
310310 raise TypeError
311311 elif not isinstance (value , (str , int , float , bool , type (None ))):
312312 raise TypeError
@@ -375,7 +375,7 @@ def _queue_push_list_elem(self, elem):
375375 def _queue_all_key_values_in_dict (self , key , elem ):
376376 # type: (str, dict) -> bool
377377 found = False
378- if type ( elem ) is not dict or type (elem ) is not OrderedDict :
378+ if not isinstance (elem , ( dict , OrderedDict )) :
379379 raise TypeError
380380 elif type (key ) is not str :
381381 raise TypeError
0 commit comments