首页 > 解决方案 > 需要使用 Python 3x 从 JSON 文件转换为 DDL 语句

问题描述

我的任务是使用 Python 从 JSON 文件生成 DDL 语句。

这是JSON代码,

{
    "root": {
        "columns": [
       {
        "src_name": "",
        "target_name": "id",
        "target_type": {
          "datatype": "int",
          "width": 14
       },
        "target_options": {
          "nullable": false,
          "autoincrement": true
        }
      },
      {
        "src_name": "source primary key",
        "target_name": "src_pkey",
        "target_type": {
          "datatype": "varchar",
          "width": 250
       },
        "target_options": {
          "nullable": false           
        }
      },
      {
        "src_name": "vendor name",
        "target_name": "vendor_name",
        "target_type": {
          "datatype": "varchar",
          "width": 250
       },
        "target_options": {
          "nullable": false           
        }
      },
       {
        "src_name": "create date",
        "target_name": "create_dt",
        "target_type": {
         "datatype": "timestamp",
          "fractional": 0
        },
        "target_options": {
          "nullable": false,
          "default": "CURRENT_TIMESTAMP"
        }
      },
      {
        "src_name": "create date",
        "target_name": "create_dt",
        "target_type": {
         "datatype": "timestamp",
          "fractional": 0
        },
        "target_options": {
          "nullable": false,
          "default": "CURRENT_TIMESTAMP"
        }
      }
     ],
    "target_primaryKey": {
      "columns": [
        {
          "column": "id"
        }
      ]
    },
    "target_uniqueKeys": [
      {
        "columns": [
          {
            "column": "vendor_name"
          }
        ],
        "name": "unq_name"
      }
    ],
    "target_options": {
      "comment": "All system users",
      "engine": "MyISAM"
    }
   }
}

我需要为 JSON 文件生成一个 CREATE TABLE 语句。

示例 SQL 应该是这样的,

CREATE TABLE TABLE_NAME (
    id int(14) NOT NULL AUTO_INCREMENT,
    src_pkey varchar(250) NOT NULL,
    vendor_name varchar(250) NOT NULL,
    create_dt timestamp DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (id)
); 

我尝试过其他参考,例如,使用 Python 从 JSON 创建数据结构

但是,无法理解。

PS:我刚开始学习Python,所以对这门语言了解不多。

标签: pythonjsonpython-3.xddl

解决方案


推荐阅读