例如,
表样本
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
-有许多版本可用。