You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PowerShell将CSV转JSON时避免长数字转为科学计数法?

解决CSV转JSON时长数字转为科学计数法的问题

问题原因

Import-Csv读取CSV文件时所有字段默认都是字符串类型,但ConvertTo-Json会自动识别格式类似数值的内容,将长数字转换为数值类型,最终输出为科学计数法格式。要避免这个问题,需要强制让长数字字段以字符串形式保留,阻止自动类型转换。

解决方案

通过显式将长数字字段转换为字符串类型,让ConvertTo-Json将其处理为JSON字符串值,而非数值。以下是两种可行的修改方式:

方式一:使用计算属性直接转换

Import-Csv -Path "F:\DATA_002.csv" -UseCulture |
    Select-Object Name,
        @{Label = 'Mobile'; Expression = { [string]$_.Mobile }},
        @{Label = 'Other mobile no.'; Expression = { [string]$_.'Other mobile no.' }} |
    ConvertTo-Json |
    Add-Content -Path "F:\DATA_002.json"

方式二:先修改对象属性类型再转换

# 导入CSV数据
$csvData = Import-Csv -Path "F:\DATA_002.csv" -UseCulture

# 遍历数据,将长数字字段强制转为字符串
foreach ($item in $csvData) {
    $item.Mobile = [string]$item.Mobile
    $item.'Other mobile no.' = [string]$item.'Other mobile no.'
}

# 转换为JSON并保存
$csvData | Select-Object Name, Mobile, 'Other mobile no.' | ConvertTo-Json | Add-Content -Path "F:\DATA_002.json"

说明

两种方式的核心都是确保长数字字段在传递给ConvertTo-Json时是字符串类型,这样JSON输出中该字段会被双引号包裹,完全保留原始数字格式,不会出现科学计数法。

内容的提问来源于stack exchange,提问作者sridharnetha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 02:15:37