當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。