jq 和数学函数

ric*_*ver 7 timezone json jq

我正在从房地产数据库中检索 JSON。jq可以很容易地拉出单独的属性/值,但有些值的单位不方便。例如,LotSize 变量以平方英尺为单位(需要除以 43560 得到英亩,这是更常规的),而 dateSold 是 Linux 时间戳。这是一个示例:

{
    "lotsize": 65340,
    "dateSold": 1207897200
} 
Run Code Online (Sandbox Code Playgroud)

我希望能够对 jq 处理的值进行数学运算。我已经阅读了手册(https://stedolan.github.io/jq/manual/#Math),但它并没有让我了解如何去做。我想将上面的 JSON 数据转换成这样:

{
    "acres": 1.5,
    "soldOn": "Friday, April 11, 2008"
} 
Run Code Online (Sandbox Code Playgroud)

我知道我可以修补 Excel,但jq如果不进行任何进一步处理就可以这样做会很酷。关于这样做的任何想法?谢谢。

pea*_*eak 9

根据您的意见,

jq -c '{acres: (.lotsize/43560), soldOn: (.dateSold | strftime("%A %B %d, %Y")) }'
Run Code Online (Sandbox Code Playgroud)

产生:

{"acres":1.5,"soldOn":"Friday April 11, 2008"}
Run Code Online (Sandbox Code Playgroud)

jq 的最新版本支持环境变量 TZ,因此您可能需要查看strflocaltime.