如何移除JSON中MaterialWNumber值内的小数点?
移除JSON对象中指定字段值的小数点
问题背景
现有如下JSON数据:
[ { "sid": "s-mtl-1", "MaterialNumber": "0.4440", "MaterialWNumber": "W0.4440", "tubePrice": "12"}, { "sid": "s-mtl-2", "MaterialNumber": "0.5550", "MaterialWNumber": "W0.5550", "tubePrice": "13"}, { "sid": "s-mtl-3", "MaterialNumber": "0.6660", "MaterialWNumber": "W0.6660", "tubePrice": "14"} ]
需要移除每个对象中MaterialWNumber字段值里的小数点,保留其他字段原始值,最终得到:
[ { "sid": "s-mtl-1", "MaterialNumber": "0.4440", "MaterialWNumber": "W04440", "tubePrice": "12"}, { "sid": "s-mtl-2", "MaterialNumber": "0.5550", "MaterialWNumber": "W05550", "tubePrice": "13"}, { "sid": "s-mtl-3", "MaterialNumber": "0.6660", "MaterialWNumber": "W06660", "tubePrice": "14"} ]
解决方案
JavaScript实现
遍历数组对象,对目标字段执行字符串替换操作,同时保留原数据不变:
const originalData = [ { "sid": "s-mtl-1", "MaterialNumber": "0.4440", "MaterialWNumber": "W0.4440", "tubePrice": "12"}, { "sid": "s-mtl-2", "MaterialNumber": "0.5550", "MaterialWNumber": "W0.5550", "tubePrice": "13"}, { "sid": "s-mtl-3", "MaterialNumber": "0.6660", "MaterialWNumber": "W0.6660", "tubePrice": "14"} ]; const processedData = originalData.map(item => ({ ...item, MaterialWNumber: item.MaterialWNumber.replace('.', '') })); console.log(JSON.stringify(processedData, null, 2));
Python实现
通过遍历复制原对象,仅修改目标字段的内容:
import json original_data = [ { "sid": "s-mtl-1", "MaterialNumber": "0.4440", "MaterialWNumber": "W0.4440", "tubePrice": "12"}, { "sid": "s-mtl-2", "MaterialNumber": "0.5550", "MaterialWNumber": "W0.5550", "tubePrice": "13"}, { "sid": "s-mtl-3", "MaterialNumber": "0.6660", "MaterialWNumber": "W0.6660", "tubePrice": "14"} ] processed_data = [] for item in original_data: new_item = item.copy() new_item['MaterialWNumber'] = new_item['MaterialWNumber'].replace('.', '') processed_data.append(new_item) print(json.dumps(processed_data, indent=2))
核心逻辑
- 遍历每个对象时,通过复制或展开语法保留原始对象,避免修改原数据
- 对
MaterialWNumber字段使用字符串替换,直接移除小数点 - 其他字段保持原始值完全不变
内容的提问来源于stack exchange,提问作者MedvidekPu
相关产品推荐
相关产品推荐

