mwa*_*wag 2 javascript error-handling type-conversion jq
如何在 jq 中创建 some_function ,如果可能的话,它会转换为数字,但如果没有则保持原样?例如:
echo '["123","12x3"]' | jq '.[] | some_function'
Run Code Online (Sandbox Code Playgroud)
会回来
123
"12x3"
Run Code Online (Sandbox Code Playgroud)
如果我可以在发生错误时有一些后备,那么 tonumber() 函数就可以正常工作。一些潜在的解决方案可能是允许错误处理,例如 iferror(xxx, result_if_error),或者有某种“安全”的 tonumber() 函数,但我找不到一种方法可以让这两种解决方案在 jq 中工作。
对于错误处理方法,我也尝试过:
echo '["123","12x3"]' | jq 'map(try tonumber catch .) '
Run Code Online (Sandbox Code Playgroud)
(以及等效的用户定义函数)无济于事。我猜这个问题有一个简单的解决方案,但我似乎找不到。
你可以简单地写:tonumber? // .
或者作为一个函数:
def tonumberq: tonumber? // .;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1348 次 |
| 最近记录: |