From 83ad5cc29a74e688ee609c84af47900ec5f97fe3 Mon Sep 17 00:00:00 2001 From: Dimitri Polonsky Date: Wed, 19 Mar 2025 09:30:16 -0400 Subject: [PATCH] Properly deserialize datetime objects. This is a fix for the error "'Object of type datetime is not JSON serializable')" --- .../06-prompt-and-session-attributes.ipynb | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/agents-and-function-calling/bedrock-agents/features-examples/06-prompt-and-session-attributes/06-prompt-and-session-attributes.ipynb b/agents-and-function-calling/bedrock-agents/features-examples/06-prompt-and-session-attributes/06-prompt-and-session-attributes.ipynb index 7a59d2066..25de0e71c 100644 --- a/agents-and-function-calling/bedrock-agents/features-examples/06-prompt-and-session-attributes/06-prompt-and-session-attributes.ipynb +++ b/agents-and-function-calling/bedrock-agents/features-examples/06-prompt-and-session-attributes/06-prompt-and-session-attributes.ipynb @@ -903,6 +903,16 @@ "outputs": [], "source": [ "%%time\n", + "import json\n", + "from datetime import datetime\n", + "\n", + "class DateTimeEncoder(json.JSONEncoder):\n", + " def default(self, obj):\n", + " if isinstance(obj, datetime):\n", + " return obj.isoformat()\n", + " return super().default(obj)\n", + "\n", + "\n", "event_stream = agentResponse['completion']\n", "try:\n", " for event in event_stream: \n", @@ -913,7 +923,7 @@ " end_event_received = True\n", " # End event indicates that the request finished successfully\n", " elif 'trace' in event:\n", - " logger.info(json.dumps(event['trace'], indent=2))\n", + " logger.info(json.dumps(event['trace'], indent=2, cls=DateTimeEncoder))\n", " else:\n", " raise Exception(\"unexpected event.\", event)\n", "except Exception as e:\n",