JQ и математические функции - PullRequest
0 голосов
/ 26 ноября 2018

Я получаю JSON из базы данных недвижимости.jq позволяет легко извлекать отдельные свойства / значения, но некоторые значения указаны в неудобных единицах.Например, переменная 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 сделал это без дальнейшей обработки. Есть какие-нибудь мысли по этому поводу? Спасибо.

1 Ответ

0 голосов
/ 26 ноября 2018

С вашим вводом

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

создает:

{"acres":1.5,"soldOn":"Friday April 11, 2008"}

Последние версии jq поддерживают переменную окружения TZ, поэтому вы можете захотеть взглянуть на strflocaltime.

...