【发布时间】:2015-09-03 08:45:17
【问题描述】:
请注意,此数据已被清理以防止识别信息,并且逗号之间的大量空白已被删除以提高可读性。最后,在 TYPE 列的末尾有一行说明导出了多少行,希望脚本可以忽略这些行。
TYPE ,DATE ,TIME ,STREET ,CROSS-STREET ,X-COORD ,Y-COORD
459 ,2015-05-03 00:00:00.000,00:58:35,FOO DR ,A RD/B CT , 0.0, 0.0
488 ,2015-05-03 00:00:00.000,02:31:54,BAR AV ,C ST/D ST , 0.0, 0.0
我正在尝试使用 Import-CSV 导入此 CSV,将 TYPE 数字代码转换为不同的字符串。一个例子是 459 变成了 Apple。 488变成香蕉等等。我创建了一个哈希,其中 TYPE 数字作为键,值是我想要更改的值。
所以我的问题实际上是双重的;到目前为止,我一直无法将 TYPE CSV 列导入到脚本中(我大部分时间都在尝试使用数组),并且我不确定构建逻辑以根据我的哈希检查数组数据的最佳方法键并将其替换为适当的值。
# declare filename to modify
$strFileName="test.csv"
# import the type data into its own array
$imported_CSV = Import-Csv $strFileName
# populate hash
$conversion_Hash = @{
187 = Homicide;
211 = Robbery;
245 = Assault;
451 = Arson;
459 = Burglary;
484 = Larceny;
487 = Grand Theft;
488 = Petty Theft;
10851 = Stolen Vehicle;
HS = Drug;
}
# perform the conversion
foreach ($record in $imported_CSV)
{
$conversion_Hash[$record.Type]
}
这没有逻辑,只包含下面答案中提供的代码。请注意,我提到它在下面的 cmets 中不起作用。
【问题讨论】:
-
是的....向我们展示您到目前为止所获得的,您可能离解决方案不远了
-
您的真实数据是否包含类型列中的那些空格?我认为您的专栏将是
type_而不仅仅是type。在 score 下是有显示空间的 -
嗨,迈克尔。我回滚了您的编辑,以便人们可以清楚地看到问题和解决方案。我明白你在做什么,但它现在对其他人更有用。
标签: powershell csv hash import