diff --git a/langchain/output_parsers/structured.py b/langchain/output_parsers/structured.py index 9921e7c6..c77f865a 100644 --- a/langchain/output_parsers/structured.py +++ b/langchain/output_parsers/structured.py @@ -39,7 +39,10 @@ class StructuredOutputParser(BaseOutputParser): def parse(self, text: str) -> BaseModel: json_string = text.split("```json")[1].strip().strip("```").strip() - json_obj = json.loads(json_string) + try: + json_obj = json.loads(json_string) + except json.JSONDecodeError as e: + raise OutputParserException(f"Got invalid JSON object. Error: {e}") for schema in self.response_schemas: if schema.name not in json_obj: raise OutputParserException(