Is there any way to return an array of objects (e.g. return multiple car objects):
{"type": "object", "properties": {"car": {"type": "object", "properties": {"make": {"type": "string"}, "model": {"type": "string"}, "year": {"type": "number"}, "colors": {"type": "array", "items": {"type": "string"}}, "features": {"type": "object", "properties": {"audio": {"type": "object", "properties": {"brand": {"type": "string"}, "speakers": {"type": "number"}, "hasBluetooth": {"type": "boolean"}}}, "safety": {"type": "object", "properties": {"airbags": {"type": "number"}, "parkingSensors": {"type": "boolean"}, "laneAssist": {"type": "boolean"}}}, "performance": {"type": "object", "properties": {"engine": {"type": "string"}, "horsepower": {"type": "number"}, "topSpeed": {"type": "number"}}}}}}}, "owner": {"type": "object", "properties": {"firstName": {"type": "string"}, "lastName": {"type": "string"}, "age": {"type": "number"}}}}}
Here is an example I tried that gave the below error:
json_schema = {
"type": "array",
"properties": {
"type": "object",
"properties": {
"car": {
"type": "object",
"properties": {
"make": {"type": "string"},
"model": {"type": "string"},
"horsepower": {"type": "number"}
}
}
}
}
}
error:
TypeError: string indices must be integers
File /local_disk0/.ephemeral_nfs/envs/pythonEnv-0fa4792b-fa73-408b-b0a8-ecf9f5e56538/lib/python3.10/site-packages/jsonformer/main.py:242, in Jsonformer.__call__(self)
240 def __call__(self) -> Dict[str, Any]:
241 self.value = {}
--> 242 generated_data = self.generate_object(
243 self.json_schema["properties"], self.value
244 )
245 return generated_data
File /local_disk0/.ephemeral_nfs/envs/pythonEnv-0fa4792b-fa73-408b-b0a8-ecf9f5e56538/lib/python3.10/site-packages/jsonformer/main.py:147, in Jsonformer.generate_object(self, properties, obj)
145 for key, schema in properties.items():
146 self.debug("[generate_object] generating value for", key)
--> 147 obj[key] = self.generate_value(schema, obj, key)
148 return obj
File /local_disk0/.ephemeral_nfs/envs/pythonEnv-0fa4792b-fa73-408b-b0a8-ecf9f5e56538/lib/python3.10/site-packages/jsonformer/main.py:156, in Jsonformer.generate_value(self, schema, obj, key)
150 def generate_value(
151 self,
152 schema: Dict[str, Any],
153 obj: Union[Dict[str, Any], List[Any]],
154 key: Union[str, None] = None,
155 ) -> Any:
--> 156 schema_type = schema["type"]
157 if schema_type == "number":
158 if key:
Is there any way to return an array of objects (e.g. return multiple
carobjects):Here is an example I tried that gave the below error:
error: