使用PowerShell读取Azure Blob Storage中指定条件的JSON数据
使用PowerShell读取Azure Storage中的JSON Blob并筛选指定学生信息
前置说明
你提供的students.json存在语法错误:第二个学生对象里"LastName": "opq"后面缺少逗号,必须修正这个错误才能正常解析JSON内容。
操作步骤
- 安装并导入Az.Storage模块
如果本地未安装Azure PowerShell存储模块,先执行以下命令:
Install-Module -Name Az.Storage -Force -AllowClobber Import-Module Az.Storage
- 登录Azure账号
执行命令完成身份验证:
Connect-AzAccount
- 获取存储账户上下文
替换命令中的资源组名和存储账户名:
$storageAccount = Get-AzStorageAccount -ResourceGroupName "你的资源组名称" -Name "你的存储账户名称" $ctx = $storageAccount.Context
- 读取Blob内容并解析JSON
方法一:下载Blob到本地后读取(适合大文件场景)
# 下载Blob到本地临时路径 Get-AzStorageBlobContent -Container "你的容器名称" -Blob "students.json" -Context $ctx -Destination "C:\temp\students.json" -Force # 读取并解析JSON $jsonData = Get-Content "C:\temp\students.json" -Raw | ConvertFrom-Json
方法二:直接读取Blob内容到内存(适合小文件场景)
$blob = Get-AzStorageBlob -Container "你的容器名称" -Blob "students.json" -Context $ctx $jsonContent = $blob.ICloudBlob.DownloadText() $jsonData = $jsonContent | ConvertFrom-Json
- 筛选目标学生信息
筛选出MainSubject为Math的学生,仅保留FirstName和LastName字段:
$mathStudents = $jsonData.college.students | Where-Object { $_.MainSubject -eq "Math" } | Select-Object FirstName, LastName # 输出筛选结果 $mathStudents
执行结果示例
运行后会输出符合条件的学生信息:
FirstName LastName --------- -------- lmn opq
内容的提问来源于stack exchange,提问作者EZR
相关产品推荐
相关产品推荐

