将表格数据转换为Redshift的JSON-选择查询以获取JSON格式的记录



例如,

表样本

id name
1  abc
2  def

我知道在SQL Server中,有一些叫做"从示例中选择 * for JSON自动"的东西,可以以JSON格式获取记录和输出。红移中有类似的东西吗?

样本输出:

这样的事情怎么样?这是通过使用Postgres Cli psql输出到CSV的,然后使用Python内置的CSV和JSON库来解析它的作用。

pql --csv -c 'select 1 as a, 2 as b union all select 3 as a,4 as b'|python3 -c 'import csv; import sys; import json; s=sys.stdin; d=csv.DictReader(s.readlines()); print(json.dumps(list(d)))'|jq

输出以下内容:

[
  {
    "a": "1",
    "b": "2"
  },
  {
    "a": "3",
    "b": "4"
  }
]

pql这是我使用的ZSH别名,不过是这样:

pql () {
    local PSWD=$(cat <password file here>)
    local DSN="redshift DSN ... password=${PSWD} ..."
    psql "${DSN}" "$@"
}

pre-reqs:

另外,您还需要大多数软件包管理器可以安装的jq,如果在MacOS上进行酿造。

python-示例使用python 3。

psql-大多数软件包经理都可以安装Postgres的CLI前端。例如,在Mac上,使用Homebrew是brew install Postgres@12-有许多版本可用。

最新更新