我有这样的数据
{
"dateCreated": "2020-06-12",
"status": "pending",
"depositDate": "2020-06-15",
"amount": 41237
}
{
"dateCreated": "2020-06-05",
"status": "paid",
"depositDate": "2020-06-08",
"amount": 37839
}
{
"dateCreated": "2020-04-02",
"status": "paid",
"depositDate": "2020-04-03",
"amount": 67
}
Run Code Online (Sandbox Code Playgroud)
格式jq
如下:
request-some-api | jq '.data[] | {dateCreated: .created | strftime("%Y-%m-%d"), status: .status, depositDate: .arrival_date | strftime("%Y-%m-%d"), amount: .amount,}'
Run Code Online (Sandbox Code Playgroud)
我想修改.amount
它,以便它显示值而不是美分数作为带有小数位的美元金额......
{
"dateCreated": "2020-06-12",
"status": "pending",
"depositDate": "2020-06-15",
"amount": $412.37
}
{
"dateCreated": "2020-06-05",
"status": "paid",
"depositDate": "2020-06-08",
"amount": $378.39
}
{
"dateCreated": "2020-04-02",
"status": "paid",
"depositDate": "2020-04-03",
"amount": $.67
}
Run Code Online (Sandbox Code Playgroud)
...但我还没有找到任何有关此的文档?是否jq
能够做到这一点的转换?即使没有$
符号,但只需添加.
美元和美分之间的数字也会有所帮助。
像这样:
jq '.amount = "$" + (.amount/100|tostring)' file.json
Run Code Online (Sandbox Code Playgroud)
{
"dateCreated": "2020-06-12",
"status": "pending",
"depositDate": "2020-06-15",
"amount": "$412.37"
}
{
"dateCreated": "2020-06-05",
"status": "paid",
"depositDate": "2020-06-08",
"amount": "$378.39"
}
{
"dateCreated": "2020-04-02",
"status": "paid",
"depositDate": "2020-04-03",
"amount": "$0.67"
}
Run Code Online (Sandbox Code Playgroud)
您所需的输出看起来格式不正确;我希望“金额”成为一个字符串值。
您可以通过在开头添加 $,然后将金额除以 100 并转换为字符串来执行此操作
例如
jq '.amount = "$" + (.amount/100|tostring)'
Run Code Online (Sandbox Code Playgroud)
在您的测试文件上执行此操作,我们可以看到 3amount
行被转换为:
"amount": "$412.37"
"amount": "$378.39"
"amount": "$0.67"
Run Code Online (Sandbox Code Playgroud)
然而,这有几个奇怪的情况,这可能(也可能不重要)很重要。如果金额以零结尾(例如 41230),那么它将显示为“$412.3”。同样,如果它是整美元 (41200),那么它将显示为“$412”。
我不确定jq
有一个简单的方法来处理这些,所以我添加了几个测试:
jq '.amount = "$" + (.amount/100|tostring) + (if .amount%100 == 0 then ".0" else "" end ) + (if .amount%10 ==0 then "0" else "" end)'
Run Code Online (Sandbox Code Playgroud)
可能有更有效的方法。
归档时间: |
|
查看次数: |
589 次 |
最近记录: |