Redshift UDF - 返回JSON密钥

时间:2016-11-18 10:36:33

标签: python json amazon-redshift

我正在尝试用Python编写Redshift UDF来返回JSON对象的键:

create or replace function json_keys (j varchar(max))
    returns varchar(max)
    stable as $$
      import json
      arr = json.loads(j)
      for key in arr.keys():
      return str(key)
    $$ language plpythonu;

然而,在测试函数时,它只返回对象键中的最后一个键,即

select json_keys('{"key1": "value1", "key2": "value2","key3": "value3"}') -- returns key3 only

我需要更改什么才能让它返回key1,key2和key3?

1 个答案:

答案 0 :(得分:2)

循环返回最后一项。结帐这个。

create or replace function json_keys (j varchar(max))
returns varchar(max)
stable as $$
    import json
    arr = json.loads(j)
    return '' if not arr else   ','.join(arr.keys())
$$ language plpythonu;

select json_keys('{"key1": "value1", "key2": "value2","key3": "value3"}')