我实际上JQ1.5
在一个Windows 10
环境下使用转换几个json文件以导入到MS SQL
数据库中。部分数据已格式化UNIX timestamp
,我需要将这些数据转换为 ISO 8601 格式。
以下命令我实际用于数据转换:
jq '
[
{ nid, title, nights, zone: .zones[0].title} +
(.sails[] | { sails_nid: .nid, arrival, departure } ) +
(.sails[].cabins[] |
{ cabintype: .cabinType.kindName,
cabinid: .cabinType.nid,
catalogPrice,
discountPrice,
discountPercentage,
currency
}
)
]
' C:\Import\dreamlines_details.json > C:\Import\import_sails.json
Run Code Online (Sandbox Code Playgroud)
到达和离开是 Unix 时间格式的数据。
数据:
[
{
"nid": 434508,
"title": "Die schönsten Orte unserer Welt",
"nights": 121,
"zone": "Weltreise",
"sails_nid": 434516,
"arrival": 1525644000,
"departure": 1515193200,
"cabintype": "Innenkabine", …
Run Code Online (Sandbox Code Playgroud) 我在windows 10环境中使用jq 1.5.我通过api收到几个信息,包括不同的城市阵列:
{
"cruises": [
{
"waypoint_cities": [
"Palma de Mallorca",
"Cádiz",
"Puerto del Rosario, Fuerteventura",
"Arrecife, Lanzarote",
"Arrecife, Lanzarote",
"Agadir",
"Gibraltar",
"Barcelona",
"Palma de Mallorca"
]}]}
Run Code Online (Sandbox Code Playgroud)
如何使用jq找到这些数组的第一个和最后一个条目?我试过了函数min/maxby,但是这个函数只传递了字母表中第一个和最后一个的字母.
对蒂莫说
我实际上遇到了一种情况,我遇到了 BIGINT 问题以及 jq 1.5/1.6 中的模糊性(在 Windows 环境中)。我阅读了问题报告,并认为如果我将数字转换为字符串,我可以处理它。但我用特定命令测试它,结果是一样的
[. | { last_update: .starbase_detailed_scan.last_update_time, user_name: .starbase_detailed_scan.owner_name, alliance_id: .starbase_detailed_scan.owner_alliance_id | tostring, drydocks: .starbase_detailed_scan.num_drydocks, tier: .starbase_detailed_scan.owner_level, defence_plattform: .starbase_detailed_scan.num_defence_platforms, shield_triggered: .starbase_detailed_scan.player_shield.triggered_on, shield_end: .starbase_detailed_scan.player_shield.expiry_time, parsteel: .starbase_detailed_scan.resources["2325683920"], tritanium: .starbase_detailed_scan.resources["743985951"], dilithium: .starbase_detailed_scan.resources["2614028847"], user_id: .starbase_detailed_scan.owner_user_id, defence_rating: .starbase_detailed_scan.defense_rating }]
Run Code Online (Sandbox Code Playgroud)
结果:
[{"last_update":"2018-12-23T19:26:24","user_name":"Hamita40","alliance_id":"774615702811599900","drydocks":3,"tier":19,"defence_plattform":3,"shield_triggered":"0001-01-01T00:00:00","shield_end":"0001-01-01T00:00:00","parsteel":183649,"tritanium":22459,"dilithium":7074,"user_id":"a2588903decc455283c88508f6a7fedf","defence_rating":25200}]
Run Code Online (Sandbox Code Playgroud)
这Alliance_id
是不正确的。正确的id是:
774615702811599864
Run Code Online (Sandbox Code Playgroud)
有什么解决方法吗?
BR蒂莫