You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PowerShell解析JSON日期并筛选当月数据导出为CSV

PowerShell解析JSON日期并过滤当月数据解决方案

实现思路

  • 首先获取当月第一天的零点时间作为过滤基准,可自动规避同一年其他月份、其他年份同月份数据的误判问题
  • PowerShell支持直接将Dateobtained字段的ISO 8601格式时间字符串转换为DateTime对象,无需额外编写格式解析逻辑
  • 在遍历JSON节点时增加日期判断条件,仅保留符合当月要求的记录输出到CSV

完整修改后代码

# 读取JSON源文件
$json = Get-Content "source.json" | ConvertFrom-Json
# 定义当月第一天零点作为过滤基准
$currentMonthStart = Get-Date -Day 1 -Hour 0 -Minute 0 -Second 0 -Millisecond 0

$json | ForEach-Object {
    # 遍历每个测试项的Findings节点
    $_.Findings | ForEach-Object {
        # 转换日期字段并判断是否属于当月
        $obtainedDate = [DateTime]$_.Dateobtained
        if ($obtainedDate -ge $currentMonthStart) {
            [PSCustomObject]@{
                'Type'        = $_.Type
                'Score'       = $_.Score
                'Status'      = $_.Status
                'Description' = $_.Description
                # 如需保留日期字段到CSV可取消下一行注释
                # 'Dateobtained' = $obtainedDate.ToString("yyyy-MM-dd HH:mm:ss")
            }
        }
    }
} | Export-Csv -Path "out.csv" -NoTypeInformation -Encoding UTF8

补充说明

  • 如果JSON中的Dateobtained为UTC时间,可将基准时间调整为UTC格式保证比对准确:
    $currentMonthStart = (Get-Date -Day 1 -Hour 0 -Minute 0 -Second 0 -Millisecond 0).ToUniversalTime()
    
  • 代码末尾增加了-Encoding UTF8参数,避免导出CSV时出现中文乱码,如无相关需求可直接删除。

内容的提问来源于stack exchange,提问作者prokopio_kuba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 09:51:02