如何从配置单元 SQL table 描述生成 json 对象?

How to generate json object from hive SQL table description?

我使用 describe formatted table_name 获取 table 的描述。我得到以下结果。我想以某种方式将其转换为 json 。有什么好的方法吗?换句话说,我想让我的 sql table 描述为 json。不像下面输出中显示的那样 table。

我想要得到的输出应该是这样的:

{
    "columns" : {
        "id" : "int",
        "name": "string"
    },


    "partition_information": {
        "columns" : {
            "dt_temp" : "string"
        }
    },

    "Detailed table information" : {
        "Database" : "d1",
        "owner" : "root",
        .
        .
        .
        .
        .
        
    }
}

是否有任何函数或库可以为我执行此操作?现在,我正在使用 python 脚本手动执行此操作,但这非常困难且混乱。我不希望得到与我提到的完全相同的输出,我正在寻找一种方法来从某些 python 脚本中轻松而有意义地解析它。有什么建议吗?

DESCRIBE EXTENDED 可以产生 JSON(已检查它在 Hive 2.1.1 上工作正常):

set hive.ddl.output.format=json;
desc extended table_name;

它产生这样的输出:

{"columns":[{"name":"id","type":"bigint","comment":"from deserializer"}, 
            {"name":"col1","type":"string","comment":"from deserializer"},
            ...