【发布时间】:2022-06-10 18:27:53
【问题描述】:
也许标题是错误的,但我不知道如何解释。 我有 4 个 csv 文件,每个文件大约有 15000 行,看起来像这样
号码,"姓氏","名字","emailAddress","taxIdentifier" 100238963,"史密斯","约翰","john.smith@gmail.com","xxxxxxxxxxxx"
我读取了 9999 行并创建了一个我们在网站上使用的 json 文件来检查每个人,然后我们得到大多数用户的回复,回复是“数字” 然后我需要在第一个数组中找到所有这些人。 我今天也是这样做的,但是这样检查每个人都需要很长时间,有没有更好的方法?
这是从文件中获取人员并创建 json 文件的代码:
$Files = Get-ChildItem -Path "$Folders\\*" -Include *.csv -Force
foreach ($File in $Files){
$fname = $file
$fname = (Split-Path $File.name -leaf).ToString().Replace(".csv", "")
$Savefile = $fname+ "_Cleaned.csv"
$users = Import-Csv $File
$body = "{`"requestId`": `"144x25`",`"items`": ["
$batchSize = 9999
$batchNum = 0
$row = 0
while ($row -lt $users.Count) {
$test = $users[$row..($row + $batchSize - 1)]
foreach ($user in $test) {
$nr = $user.number
$tax = $user.taxIdentifier
$body += "{`"itemId`": `"$nr`",`"subjectId`": `"$tax`"},"
}
然后这是处理响应的代码:
$Result = @()
foreach ($1 in $response.allowedItemIds)
{
foreach ($2 in $Users){
If ($2.number -like $1)
{
$Result += [pscustomobject]@{
number = $2.number
Surname = $2.surname
Forename = $2.forename
Email = $2.emailaddress
Taxidendifier = $2.taxIdentifier
}
}
}
}
$Result | Export-Csv -path "$folders\$savefile" -NoTypeInformation -Append
$row += $batchSize
$batchNum++
希望有人有任何想法
干杯
【问题讨论】:
-
您能否举一个示例数据的 json 请求和响应示例?
-
正文变量:{"itemId":"100164211","subjectId":"xxxxxxxxxxxx"} 响应变量:requestId responseId allowedItemIds --------- -------- --- -------------- 144x25 2efb8b47-d693-46ac-96b1-a31288567cf3 {100164211, 100415116, 100738809, 100097320...}
标签: arrays powershell csv