@@ -61,7 +61,7 @@ def escape_param(item, context, for_server=False):
6161 return "[%s]" % ', ' .join (str (escape_param (x , context , for_server = for_server )) for x in item )
6262
6363 elif isinstance (item , tuple ):
64- return "(%s)" % ', ' .join (str (escape_param (x , context , for_server = for_server )) for x in item )
64+ return "tuple (%s)" % ', ' .join (str (escape_param (x , context , for_server = for_server )) for x in item )
6565
6666 elif isinstance (item , Enum ):
6767 return escape_param (item .value , context , for_server = for_server )
@@ -72,6 +72,15 @@ def escape_param(item, context, for_server=False):
7272 elif isinstance (item , types .Binary ):
7373 return escape_binary (item , context )
7474
75+ elif isinstance (item , types .JSON ):
76+ value = item .value
77+ if isinstance (value , list ):
78+ return escape_param ([types .JSON (v ) for v in value ], context , for_server = for_server )
79+ elif isinstance (value , dict ):
80+ return escape_param (tuple (types .JSON (v ) for v in value .values ()), context , for_server = for_server )
81+ else :
82+ return escape_param (value , context , for_server = for_server )
83+
7584 else :
7685 return item
7786
0 commit comments