diff --git a/lib/plugins/aws/invokeLocal/runtimeWrappers/invoke.py b/lib/plugins/aws/invokeLocal/runtimeWrappers/invoke.py index 0df5bc4bc27..5279f5e53c9 100755 --- a/lib/plugins/aws/invokeLocal/runtimeWrappers/invoke.py +++ b/lib/plugins/aws/invokeLocal/runtimeWrappers/invoke.py @@ -3,9 +3,17 @@ import json import logging import sys +import decimal from time import strftime, time from importlib import import_module +def decimal_serializer(o): + if isinstance(o, decimal.Decimal): + f = float(o) + if f.is_integer(): + return int(f) + return f + class FakeLambdaContext(object): def __init__(self, name='Fake', version='LATEST', timeout=6, **kwargs): self.name = name @@ -84,4 +92,4 @@ def log(self): context = FakeLambdaContext(**input.get('context', {})) result = handler(input['event'], context) - sys.stdout.write(json.dumps(result, indent=4)) + sys.stdout.write(json.dumps(result, default=decimal_serializer, indent=4))