Как создать словарь Python из файла ЯМЛ OpenAPI 3?

#python #api #dictionary #openapi

Вопрос:

Существует ли пакет Python 3 или фрагмент кода, который может прочитать файл ЯМЛ OpenAPI 3 и преобразовать его в словарь Python?

Это пример содержимого файла ЯМЛ OpenAPI 3

 openapi: 3.0.0
servers:
    url: https://localhost/api
paths:
  /user/{userId}:
    get:
      summary: Get a user by ID
      parameters:
        - in: path
          name: userId
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
components:
  schemas:
    User:
      type: object
      properties:
        id:
          type: integer
        name:
          $ref: '#/components/schemas/UserFullName'
        age:
          type: integer
    UserFullName:
      type: object
      properties:
        firstName:
          type: string
        lastName:
          type: string
 

Я хочу, чтобы пакет/код для создания словаря Python выглядел примерно так

 {
  "/user/{userId}": {
    "get": {
      "200": {
        "id": "integer",
        "name": {
          "firstName": "string",
          "lastName": "string"
        }
        "age" "integer"
      }
    }
  }
}
 

—— Редактировать ——

Я попробовал PyYAML, однако он не возвращает то, что я ожидаю.

Я ожидаю, что пара ключ-значение «$ref » будет действовать как строковая интерполяция, подобная этой:

 {
   "id":0,
   "name":{
      "firstName":"string",
      "lastName":"string"
   },
   "age":0
}
 

Вместо этого PyYAML возвращает это:

 {
  "id":0,
  "name": {
    "$ref": "#/components/schemas/UserFullName"
  },
  "age":0
}
 

Ответ №1:

Да, есть посылка под названием pyyaml . Чтобы узнать больше, пожалуйста, обратитесь к этой статье О том, как прочитать файл YAML в Dict на Python

Комментарии:

1. Спасибо, я добавил разъяснения к вопросу после использования PyYAML