You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python实现JSON对象转数组的最佳实践与方法咨询

最佳实现方案:用Python标准库快速搞定转换

这个需求其实用Python自带的json模块就能完美解决,不用额外装第三方库,简洁又可靠。核心思路很简单:遍历原list对象的键值对,把每个键作为新数组元素的name字段,再保留原有的path字段

完整代码示例

import json

# 输入的JSON字符串
input_json = '''{"date": "2020-10-19", "aaa": "123", "bbb": "456", "ccc": "description", "list": { "cap": { "path": "data0" }, "ope": { "path": "data1" }, "tri": { "path": "data2" } }}'''

# 把JSON转成Python字典,方便操作
data = json.loads(input_json)

# 核心转换:把对象转成数组
data['list'] = [{'name': key, **value} for key, value in data['list'].items()]

# 生成格式化后的输出JSON(indent参数是为了美观,生产环境可去掉)
output_json = json.dumps(data, indent=2)

print(output_json)

代码细节解释

  1. JSON与Python结构互转json.loads()把输入的JSON字符串转成Python字典,处理完后再用json.dumps()转回JSON格式,这是Python处理JSON的标准流程。
  2. 列表推导式+字典解包:这里用列表推导式遍历原list对象的键值对,同时用**value把原对象里的path字段直接合并到新字典里——这种写法比手动写'path': value['path']更灵活,要是以后原对象多了其他字段,代码不用改就能自动保留。
  3. 格式化输出indent=2让输出的JSON有缩进,看起来更清晰,要是追求性能或者不需要美观,直接去掉这个参数就行。

为啥说这是最佳实践?

  • 完全依赖标准库,没有第三方依赖,移植性拉满,不管是本地脚本还是服务器部署都能用。
  • 代码简洁易读,一行列表推导式就完成了核心转换,比写多层循环清爽多了。
  • 扩展性强,要是以后需要处理更复杂的嵌套结构,只需要在推导式里加少量逻辑就能适配。

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

火山引擎 最新活动