如何减少Dark Sky(天气API)返回的数据字段数量?
How to reduce the number of data fields returned by Dark Sky (weather API)?
我正在使用以下命令从 Dark Sky 获取天气预报数据...
Invoke-RestMethod -Method Get -Uri "https://api.darksky.net/forecast/[myAPIkey]/25.1234,-95.1234,2018-12-25T12:00:00?exclude=currently,minutely,hourly,flags&units=us" -Headers $headers | Select-Object -ExpandProperty daily"
这是返回的天气信息...
{"latitude":25.1234,"longitude":-95.1234,"timezone":"Etc/GMT+6","daily":{"data":[{"time":1545717600,"summary":"Mostly cloudy starting in the afternoon.","icon":"partly-cloudy-night","sunriseTime":1545743078,"sunsetTime":1545781154,"moonPhase":0.61,"precipIntensity":0.0009,"precipIntensityMax":0.0023,"precipIntensityMaxTime":1545728400,"precipProbability":0.16,"precipType":"rain","temperatureHigh":73.63,"temperatureHighTime":1545764400,"temperatureLow":72.73,"temperatureLowTime":1545800400,"apparentTemperatureHigh":74.26,"apparentTemperatureHighTime":1545764400,"apparentTemperatureLow":73.69,"apparentTemperatureLowTime":1545796800,"dewPoint":64.96,"humidity":0.77,"pressure":1017.44,"windSpeed":16.35,"windGust":25.84,"windGustTime":1545800400,"windBearing":129,"cloudCover":0.37,"uvIndex":6,"uvIndexTime":1545760800,"visibility":10,"ozone":225.63,"temperatureMin":71.09,"temperatureMinTime":1545717600,"temperatureMax":73.63,"temperatureMaxTime":1545764400,"apparentTemperatureMin":71.32,"apparentTemperatureMinTime":1545717600,"apparentTemperatureMax":74.26,"apparentTemperatureMaxTime":1545764400}]},"offset":-6}
有什么方法可以在调用时过滤结果吗?试图减少本地存储的数据量。我只是在寻找这几个数据点:
temperatureHigh
temperatureLow
precipType
precipProbability
humidity
windSpeed
使用 ConvertFrom-Json 和 Select-Object
$Json = Invoke-RestMethod -Method Get -Uri "https://api.darksky.net/forecast/[myAPIkey]/25.1234,-95.1234,2018-12-25T12:00:00?exclude=currently,minutely,hourly,flags&units=us" -Headers $headers |
Select-Object -ExpandProperty daily | ConvertFrom-Json
$Json.daily.data | Select-Object temperatureHigh,temperatureLow,precipType,precipProbability,humidity,windSpeed
示例输出:
temperatureHigh : 73,63
temperatureLow : 72,73
precipType : rain
precipProbability : 0,16
humidity : 0,77
windSpeed : 16,35
你可以直接这样做...
(Invoke-RestMethod -Method Get -Uri "https://api.darksky.net/forecast/[myApiKey]/25.1234,-95.1234,2018-12-25T12:00:00?exclude=currently,minutely,hourly,flags&units=us" -Headers $headers |
Select-Object -ExpandProperty daily).data |
Select temperatureHigh,temperatureLow,precipType,precipProbability,humidity,windSpeed
# Results
temperatureHigh : 73.63
temperatureLow : 72.73
precipType : rain
precipProbability : 0.16
humidity : 0.77
windSpeed : 16.35
我正在使用以下命令从 Dark Sky 获取天气预报数据...
Invoke-RestMethod -Method Get -Uri "https://api.darksky.net/forecast/[myAPIkey]/25.1234,-95.1234,2018-12-25T12:00:00?exclude=currently,minutely,hourly,flags&units=us" -Headers $headers | Select-Object -ExpandProperty daily"
这是返回的天气信息...
{"latitude":25.1234,"longitude":-95.1234,"timezone":"Etc/GMT+6","daily":{"data":[{"time":1545717600,"summary":"Mostly cloudy starting in the afternoon.","icon":"partly-cloudy-night","sunriseTime":1545743078,"sunsetTime":1545781154,"moonPhase":0.61,"precipIntensity":0.0009,"precipIntensityMax":0.0023,"precipIntensityMaxTime":1545728400,"precipProbability":0.16,"precipType":"rain","temperatureHigh":73.63,"temperatureHighTime":1545764400,"temperatureLow":72.73,"temperatureLowTime":1545800400,"apparentTemperatureHigh":74.26,"apparentTemperatureHighTime":1545764400,"apparentTemperatureLow":73.69,"apparentTemperatureLowTime":1545796800,"dewPoint":64.96,"humidity":0.77,"pressure":1017.44,"windSpeed":16.35,"windGust":25.84,"windGustTime":1545800400,"windBearing":129,"cloudCover":0.37,"uvIndex":6,"uvIndexTime":1545760800,"visibility":10,"ozone":225.63,"temperatureMin":71.09,"temperatureMinTime":1545717600,"temperatureMax":73.63,"temperatureMaxTime":1545764400,"apparentTemperatureMin":71.32,"apparentTemperatureMinTime":1545717600,"apparentTemperatureMax":74.26,"apparentTemperatureMaxTime":1545764400}]},"offset":-6}
有什么方法可以在调用时过滤结果吗?试图减少本地存储的数据量。我只是在寻找这几个数据点:
temperatureHigh
temperatureLow
precipType
precipProbability
humidity
windSpeed
使用 ConvertFrom-Json 和 Select-Object
$Json = Invoke-RestMethod -Method Get -Uri "https://api.darksky.net/forecast/[myAPIkey]/25.1234,-95.1234,2018-12-25T12:00:00?exclude=currently,minutely,hourly,flags&units=us" -Headers $headers |
Select-Object -ExpandProperty daily | ConvertFrom-Json
$Json.daily.data | Select-Object temperatureHigh,temperatureLow,precipType,precipProbability,humidity,windSpeed
示例输出:
temperatureHigh : 73,63
temperatureLow : 72,73
precipType : rain
precipProbability : 0,16
humidity : 0,77
windSpeed : 16,35
你可以直接这样做...
(Invoke-RestMethod -Method Get -Uri "https://api.darksky.net/forecast/[myApiKey]/25.1234,-95.1234,2018-12-25T12:00:00?exclude=currently,minutely,hourly,flags&units=us" -Headers $headers |
Select-Object -ExpandProperty daily).data |
Select temperatureHigh,temperatureLow,precipType,precipProbability,humidity,windSpeed
# Results
temperatureHigh : 73.63
temperatureLow : 72.73
precipType : rain
precipProbability : 0.16
humidity : 0.77
windSpeed : 16.35