import json
import time
from pydantic import BaseModel, Field
class SeededModel(BaseModel):
seed: int = Field(default_factory=lambda _: int(time.time() * 1000))
sensible_default: bool = False
class Base(BaseModel):
settings: SeededModel = SeededModel()
config_schema = Base.model_json_schema()
print(json.dumps(config_schema, indent=2))
< /code>
Когда я запускаю это, я получаю следующую схему JSON: < /p>
{
"$defs": {
"SeededModel": {
"properties": {
"seed": {
"title": "Seed",
"type": "integer"
},
"sensible_default": {
"default": false,
"title": "Sensible Default",
"type": "boolean"
}
},
"title": "SeededModel",
"type": "object"
}
},
"properties": {
"settings": {
"$ref": "#/$defs/SeededModel",
"default": {
"seed": 1752596882987,
"sensible_default": false
}
}
},
"title": "Base",
"type": "object"
}
Есть ли хороший способ предоставить по умолчанию для базового#настройки , который сохраняет значение по умолчанию для SeededModel#sensible_default , но не для SeededModel#Seed ?
(на момент написания, это на Pydantic версии 2.11.7) У меня есть следующая MRE: < /p> [code]import json import time from pydantic import BaseModel, Field
class SeededModel(BaseModel): seed: int = Field(default_factory=lambda _: int(time.time() * 1000)) sensible_default: bool = False
class Base(BaseModel): settings: SeededModel = SeededModel()
config_schema = Base.model_json_schema() print(json.dumps(config_schema, indent=2)) < /code> Когда я запускаю это, я получаю следующую схему JSON: < /p> { "$defs": { "SeededModel": { "properties": { "seed": { "title": "Seed", "type": "integer" }, "sensible_default": { "default": false, "title": "Sensible Default", "type": "boolean" } }, "title": "SeededModel", "type": "object" } }, "properties": { "settings": { "$ref": "#/$defs/SeededModel", "default": { "seed": 1752596882987, "sensible_default": false } } }, "title": "Base", "type": "object" } [/code] Есть ли хороший способ предоставить по умолчанию для базового#настройки , который сохраняет значение по умолчанию для SeededModel#sensible_default , но не для SeededModel#Seed ?
with open('x.json', 'r') as f:
data = json.load(f)
У меня есть файл JSON, содержащий некоторые значения, например m\u03a9. Когда я читаю его с кодировкой UTF-8 в Python с помощью json.load(), некоторые значения m\u03a9 читаются как «мОм», а другие...
Я пытаюсь сравнить 2 объекта (предыдущий объект и текущий объект), чтобы проверить равенство. Значения в предыдущем объекте и текущем объекте одинаковы, но UUID в текущем объекте изменяется. Я не хочу сравнивать UUID свойства, но хочу сравнить...