gpt4 book ai didi

json - 如何使用 ConvertTo-Json 将字符串转换为整数?

转载 作者:行者123 更新时间:2023-12-02 23:29:33 25 4
gpt4 key购买 nike

我正在使用 PowerShell 将 CSV 文件转换为 JSON 格式。问题是 CSV 将双引号括在列值周围,甚至是整数。如何在转换过程中将它们转换为整数?

这是我用来将 *.csv 文件目录转换为 *.json 的脚本:

Get-ChildItem .\*.csv | Foreach-Object {
$basename = $_.BaseName
import-csv $_ | ConvertTo-Json -Compress | Foreach {$_ -creplace '"NULL"','null'} | Out-File ".\$basename.json"
}

这是我的源 CSV:
"Id","Name","Active"
"1","Test 1","1"
"2","Test 2","0"
"3","Test 3","1"

这是它的输出:
[
{"Id":"1","Name":"Test 1","Active":"1"}
{"Id":"2","Name":"Test 2","Active":"0"}
{"Id":"3","Name":"Test 3","Active":"1"}
]

我如何让它输出这个?:
[
{"Id":1,"Name":"Test 1","Active":1}
{"Id":2,"Name":"Test 2","Active":0}
{"Id":3,"Name":"Test 3","Active":1}
]

最佳答案

发生这种情况的原因是 导入-CSV 为每列创建一个具有字符串属性的对象,因此 ConvertTo-Json 给你带引号的字符串。您可以使用 选择对象 之间 导入-CSV ConvertTo-Json 将数字属性重新转换为整数,但我认为最简单的方法是在您的 中添加正则表达式替换foreach 块:

import-csv $_ | ConvertTo-Json -Compress | 
Foreach {$_ -creplace '"NULL"','null' -replace ':"([0-9]+)"',':$1'} |
Out-File ".\$basename.json"

关于json - 如何使用 ConvertTo-Json 将字符串转换为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17644796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com