forked from assafelovic/gpt-researcher
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjson_schema_generator.py
More file actions
43 lines (37 loc) · 1.11 KB
/
json_schema_generator.py
File metadata and controls
43 lines (37 loc) · 1.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import json
from typing import Dict, Any
from pydantic import BaseModel
class UserSchema(BaseModel):
id: int
name: str
email: str
age: int
is_active: bool
def generate_structured_json(schema: BaseModel, data: Dict[str, Any]) -> str:
"""
Generate structured JSON output based on provided schema
Args:
schema: Pydantic model defining the schema structure
data: Dictionary containing the data to be structured
Returns:
str: JSON string with structured data
"""
try:
# Create instance of schema with provided data
structured_data = schema(**data)
# Convert to JSON string
return json.dumps(structured_data.dict(), indent=2)
except Exception as e:
return f"Error generating JSON: {str(e)}"
# Example usage
if __name__ == "__main__":
sample_data = {
"id": 1,
"name": "John Doe",
"email": "john@example.com",
"age": 30,
"is_active": True
}
json_output = generate_structured_json(UserSchema, sample_data)
print("Structured JSON Output:")
print(json_output)