@@ -79,7 +79,7 @@ class JSONEncoder(object):
7979 +-------------------+---------------+
8080 | Python | JSON |
8181 +===================+===============+
82- | dict | object |
82+ | dict, frozendict | object |
8383 +-------------------+---------------+
8484 | list, tuple | array |
8585 +-------------------+---------------+
@@ -308,7 +308,7 @@ def _iterencode_list(lst, _current_indent_level):
308308 yield buf
309309 if isinstance (value , (list , tuple )):
310310 chunks = _iterencode_list (value , _current_indent_level )
311- elif isinstance (value , dict ):
311+ elif isinstance (value , ( dict , frozendict ) ):
312312 chunks = _iterencode_dict (value , _current_indent_level )
313313 else :
314314 chunks = _iterencode (value , _current_indent_level )
@@ -395,7 +395,7 @@ def _iterencode_dict(dct, _current_indent_level):
395395 else :
396396 if isinstance (value , (list , tuple )):
397397 chunks = _iterencode_list (value , _current_indent_level )
398- elif isinstance (value , dict ):
398+ elif isinstance (value , ( dict , frozendict ) ):
399399 chunks = _iterencode_dict (value , _current_indent_level )
400400 else :
401401 chunks = _iterencode (value , _current_indent_level )
@@ -429,7 +429,7 @@ def _iterencode(o, _current_indent_level):
429429 yield _floatstr (o )
430430 elif isinstance (o , (list , tuple )):
431431 yield from _iterencode_list (o , _current_indent_level )
432- elif isinstance (o , dict ):
432+ elif isinstance (o , ( dict , frozendict ) ):
433433 yield from _iterencode_dict (o , _current_indent_level )
434434 else :
435435 if markers is not None :
0 commit comments