当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pyflink Expression.json_query用法及代码示例


本文简要介绍 python 语言中 pyflink.table.Expression.json_query 的用法。

用法:

json_query(path: str, wrapping_behavior=<JsonQueryWrapper.WITHOUT_ARRAY:(0,)>, on_empty=<JsonQueryOnEmptyOrError.NULL:(0,)>, on_error=<JsonQueryOnEmptyOrError.NULL:(0,)>) → pyflink.table.expression.Expression

从 JSON 字符串中提取 JSON 值。

这遵循 SQL 中 JSON 支持的 ISO/IEC TR 19075-6 规范。结果始终以 STRING 的形式返回。

wrapping_behavior 确定是否应将提取的值包装到数组中,以及是无条件地这样做还是仅当值本身不是数组时才这样做。

on_emptyon_error 分别确定路径表达式为空或引发错误时的行为。默认情况下,在这两种情况下都会返回 null。其他选择是使用空数组、空对象或引发错误。

另请参阅::json_value()

例子:

>>> lit('{"a":{"b":1}}').json_query('$.a') # '{"b":1}'
>>> lit('[1,2]').json_query('$') # '[1,2]'
>>> null_of(DataTypes.STRING()).json_query('$') # None

>>> lit('{}').json_query('$', JsonQueryWrapper.CONDITIONAL_ARRAY) # '[{}]'
>>> lit('[1,2]').json_query('$', JsonQueryWrapper.CONDITIONAL_ARRAY) # '[1,2]'
>>> lit('[1,2]').json_query('$', JsonQueryWrapper.UNCONDITIONAL_ARRAY) # '[[1,2]]'

>>> lit(1).json_query('$') # null
>>> lit(1).json_query('$', JsonQueryWrapper.CONDITIONAL_ARRAY) # '[1]'

>>> lit('{}').json_query('lax $.invalid', JsonQueryWrapper.WITHOUT_ARRAY,                                      JsonQueryOnEmptyOrError.EMPTY_OBJECT,                                     JsonQueryOnEmptyOrError.NULL) # '{}'
>>> lit('{}').json_query('strict $.invalid', JsonQueryWrapper.WITHOUT_ARRAY,                                      JsonQueryOnEmptyOrError.NULL,                                      JsonQueryOnEmptyOrError.EMPTY_ARRAY) # '[]'

版本 1.12.0 中的新函数。

相关用法


注:本文由纯净天空筛选整理自apache.org大神的英文原创作品 pyflink.table.Expression.json_query。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。