Source code for autogen_core.utils._load_json
import json
import re
from typing import Any, Dict, List
[docs]
def extract_json_from_str(content: str) -> List[Dict[str, Any]]:
"""Extract JSON objects from a string. Supports backtick enclosed JSON objects"""
pattern = re.compile(r"```(?:\s*([\w\+\-]+))?\n([\s\S]*?)```")
matches = pattern.findall(content)
ret: List[Dict[str, Any]] = []
# If no matches found, assume the entire content is a JSON object
if not matches:
ret.append(json.loads(content))
for match in matches:
language = match[0].strip() if match[0] else None
if language and language.lower() != "json":
raise ValueError(f"Expected JSON object, but found language: {language}")
content = match[1]
ret.append(json.loads(content))
return ret