我正在尝试使用 datamodel-code-generator 将 JSON Schema 转换为 pydantic 模型。该模式是一个复合模式文档,这意味着
$id
用于子模式中。它会导致与 yaml.scanner 相关的问题。
我正在使用: 数据模型代码生成器 0.21.4 派丹克2.3.0 蟒蛇 3.11.14
我尝试在以下模式上使用数据模型,可以在那里找到:(https://json-schema.org/understanding-json-schema/structuring.html#retrieval-uri)
{
"$id": "https://example.com/schemas/customer",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"first_name": { "type": "string" },
"last_name": { "type": "string" },
"shipping_address": { "$ref": "/schemas/address" },
"billing_address": { "$ref": "/schemas/address" }
},
"required": ["first_name", "last_name", "shipping_address", "billing_address"],
"$defs": {
"address": {
"$id": "/schemas/address",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"street_address": { "type": "string" },
"city": { "type": "string" },
"state": { "$ref": "#/definitions/state" }
},
"required": ["street_address", "city", "state"],
"definitions": {
"state": { "enum": ["CA", "NY", "... etc ..."] }
}
}
}
}```
我在 CLI 上运行
datamodel-codegen --input schema.json --input-file-type jsonschema --output model.py
。
我期待着一个 pydantic 模型的产生。
我收到以下错误消息:
yaml.scanner.ScannerError: mapping values are not allowed in this context
in "<unicode string>", line 11, column 25
这里也出现了类似的问题: 文字 然而找到的解决方案似乎不适用于我的情况。
有人知道发生了什么事吗?我将不胜感激任何帮助。
OP确实按照问题评论中的建议为此提出了问题:https://github.com/koxudaxi/datamodel-code-generator/issues/1541
根据该问题的 GitHub 历史记录,该问题已在 data-model-generator 0.23.0 版本中得到解决