AWS Athena json_extract查询含点键JSON返回空值的解决方法
解决AWS Athena中JSON键含点的提取问题
你的问题确实是因为JSON键本身包含点,而json_extract默认会把路径中的点解析为嵌套层级分隔符,导致无法匹配到实际的键。
解决方法是将包含点的完整键名用双引号包裹,放在方括号里,明确告诉解析器这是一个完整的键,而非层级结构:
select json_extract( '{"recurrent_jobs.new_page.career_level.trainee":0,"recurrent_jobs.new_page.career_level.assistant":1}', '$."recurrent_jobs.new_page.career_level.trainee"')
也可以使用单引号包裹键名(注意SQL中要转义单引号):
select json_extract( '{"recurrent_jobs.new_page.career_level.trainee":0,"recurrent_jobs.new_page.career_level.assistant":1}', '$[\'recurrent_jobs.new_page.career_level.trainee\']')
执行以上任一查询,就能正确返回0。
内容的提问来源于stack exchange,提问作者Ekaterina Kochurova
相关产品推荐
相关产品推荐

