Redshift JSON 解析
Redshift JSON Parsing
我在 Redshift table 中有一些 JSON 类型字符不同的数据。一个示例条目是:
[{"value":["*"], "key":"testData"}, {"value":"["GGG"], key: "differentData"}]
我想 return 基于键的值,我该怎么做?我正在尝试做类似
的事情
json_extract_path_text(column, 'value')
但不幸的是它出错了。有什么想法吗?
所以第一个问题是您的字符串无效 JSON。存在不匹配和缺失的引号。我想你的意思是:
[{"value":["*"], "key":"testData"}, {"value":["GGG"], "key": "differentData"}]
我不知道这是数据问题还是转录错误,但除非 json 文本有效,否则这些功能将无法使用。
接下来要考虑的是,在顶层,这个 json 是一个数组,因此您需要使用 json_extract_array_element_text() 函数来获取数组的一个元素。例如:
json_extract_array_element_text('json string', 0)
所以把它放在一起我们可以提取第一个“值”(未测试):
json_extract_path_text(
json_extract_array_element_text(
'[{"value":["*"], "key":"testData"}, {"value":["GGG"], "key": "differentData"}]', 0
), 'value'
)
应该return字符串["*"].
我在 Redshift table 中有一些 JSON 类型字符不同的数据。一个示例条目是:
[{"value":["*"], "key":"testData"}, {"value":"["GGG"], key: "differentData"}]
我想 return 基于键的值,我该怎么做?我正在尝试做类似
的事情json_extract_path_text(column, 'value')
但不幸的是它出错了。有什么想法吗?
所以第一个问题是您的字符串无效 JSON。存在不匹配和缺失的引号。我想你的意思是:
[{"value":["*"], "key":"testData"}, {"value":["GGG"], "key": "differentData"}]
我不知道这是数据问题还是转录错误,但除非 json 文本有效,否则这些功能将无法使用。
接下来要考虑的是,在顶层,这个 json 是一个数组,因此您需要使用 json_extract_array_element_text() 函数来获取数组的一个元素。例如:
json_extract_array_element_text('json string', 0)
所以把它放在一起我们可以提取第一个“值”(未测试):
json_extract_path_text(
json_extract_array_element_text(
'[{"value":["*"], "key":"testData"}, {"value":["GGG"], "key": "differentData"}]', 0
), 'value'
)
应该return字符串["*"].