我有包含长数字的.csv文件。我使用以下PowerShell脚本从.csv
文件转换为.json
。但长数字作为科学符号正在发挥重要作用。
如何在不转换为科学符号的情况下强制将长数字从csv导入json?
这是我的PowerShell脚本
import-csv -path "F:DATA_002.csv" -UseCulture | select "Name", "Mobile", "Other mobile no." | ConvertTo-Json | Add-Content -Path "F:DATA_002.json"
正如mclayton在评论中敏锐地指出的那样,你可能无法找回原始数字,但如果你只想摆脱科学记数法,你可以尝试以下任一方法:
Import-Csv "F:DATA_002.csv" -UseCulture |
ForEach-Object { $_."Other mobile no." = $_."Other mobile no." -as [long]; $_ } |
ConvertTo-Json | Add-Content -Path "F:DATA_002.json"
Import-Csv "F:DATA_002.csv" -UseCulture |
Select-Object Name, Mobile, @{n = 'Other'; e = { $_."Other mobile no." -as [long] } } |
ConvertTo-Json | Add-Content -Path "F:DATA_002.json"
两者都使用-as
运算符将科学表示法文本转换为长对象类型。
使用-as
运算符时要特别注意。如果转换失败,它将以静默方式进行转换,并且输出将为null。如果您希望它通过通知失败,请尝试将值强制转换为long,而不是使用-as
[long]$_."Other mobile no."