jq 和数学函数
jq and Math functions
我正在从房地产数据库中检索 JSON。 jq
可以很容易地拉出单独的 properties/values,但有些值的单位不方便。例如,LotSize 变量的单位是平方英尺(需要除以 43560 才能得到英亩,这是比较常规的),而 dateSold 是一个 Linux 时间戳。这是一个示例:
{
"lotsize": 65340,
"dateSold": 1207897200
}
我希望能够对 jq 处理的值进行数学计算。我已经阅读了手册 (https://stedolan.github.io/jq/manual/#Math),但它并没有告诉我如何去做。我想将上面的 JSON 数据转换成这样:
{
"acres": 1.5,
"soldOn": "Friday, April 11, 2008"
}
我知道我可以对此进行修补 Excel,但让 jq
不做任何进一步处理就完成它会很酷。对这样做有什么想法吗?谢谢。
根据您的意见,
jq -c '{acres: (.lotsize/43560), soldOn: (.dateSold | strftime("%A %B %d, %Y")) }'
产生:
{"acres":1.5,"soldOn":"Friday April 11, 2008"}
最新版本的 jq 支持环境变量 TZ,因此您可能需要查看 strflocaltime
。
我正在从房地产数据库中检索 JSON。 jq
可以很容易地拉出单独的 properties/values,但有些值的单位不方便。例如,LotSize 变量的单位是平方英尺(需要除以 43560 才能得到英亩,这是比较常规的),而 dateSold 是一个 Linux 时间戳。这是一个示例:
{
"lotsize": 65340,
"dateSold": 1207897200
}
我希望能够对 jq 处理的值进行数学计算。我已经阅读了手册 (https://stedolan.github.io/jq/manual/#Math),但它并没有告诉我如何去做。我想将上面的 JSON 数据转换成这样:
{
"acres": 1.5,
"soldOn": "Friday, April 11, 2008"
}
我知道我可以对此进行修补 Excel,但让 jq
不做任何进一步处理就完成它会很酷。对这样做有什么想法吗?谢谢。
根据您的意见,
jq -c '{acres: (.lotsize/43560), soldOn: (.dateSold | strftime("%A %B %d, %Y")) }'
产生:
{"acres":1.5,"soldOn":"Friday April 11, 2008"}
最新版本的 jq 支持环境变量 TZ,因此您可能需要查看 strflocaltime
。