如何用Python将单键多值的JSON转换为JSON数组?
解决方案:将键值为数组的JSON转换为对象数组
下面提供两种常用编程语言的实现方式,直接解决你的转换需求:
Python 实现
先将原始JSON解析为字典,然后通过配对两个数组的对应元素生成目标数组:
import json # 注意:标准JSON要求使用双引号,需将原始单引号替换为双引号 input_str = '{"number":[1,2,3,3],"addr":["a","b","c","d"]}' data = json.loads(input_str) # 配对数组元素,生成目标对象数组 output = [{"number": num, "addr": addr} for num, addr in zip(data["number"], data["addr"])] # 打印格式化后的结果 print(json.dumps(output, indent=2))
执行后会输出你需要的JSON数组。如果两个数组长度不一致,zip会以较短的数组为准;若需要保留所有元素,可以使用itertools.zip_longest并设置默认值。
JavaScript 实现
利用数组的map方法,通过索引关联两个数组的元素:
// 原始数据(若从JSON字符串解析,需用JSON.parse()) const inputData = { number: [1,2,3,3], addr: ['a','b','c','d'] }; // 生成目标数组 const outputArray = inputData.number.map((num, idx) => ({ number: num, addr: inputData.addr[idx] })); // 输出结果 console.log(JSON.stringify(outputArray, null, 2));
这种方式简洁高效,同样要注意两个数组长度需匹配,否则会出现undefined值。
内容的提问来源于stack exchange,提问作者Anmol Kumar
相关产品推荐
相关产品推荐

