我正在尝试用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?
答案 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"}')