如何在Python中将多维列表元素保存为嵌套JSON
解决动态多维列表转指定嵌套JSON的问题
没问题,这事儿用Python很容易搞定,不管你的算法生成多少个子列表,都能轻松转换成你要的JSON格式。我给你写个完整的实现示例,再拆解下逻辑:
核心思路
你的需求本质是遍历动态数量的子列表,将每个子列表的元素映射到指定的JSON字段:
- 外层JSON固定包含
id和Values两个字段 Values是一个数组,每个元素对应输入里的一个子列表:- 子列表第一个元素 →
Name字段 - 子列表第二/三/四个元素 →
X/Y/Z字段
- 子列表第一个元素 →
完整代码示例
import json # 这里替换成你算法生成的动态多维列表 input_list = [ ['Name1','5','6','7'], ['Name2','3','8','5'], ['Name3','9','2','4'] ] # 初始化目标JSON结构 target_json = { "id": "id", # 如果需要动态生成id,可以替换成逻辑,比如uuid.uuid4().hex "Values": [] } # 遍历每个子列表,转换为Values中的对象 for sub_list in input_list: # 确保子列表格式符合要求(名称+3个数值),避免索引错误 if len(sub_list) == 4: value_item = { "Name": sub_list[0], "X": sub_list[1], "Y": sub_list[2], "Z": sub_list[3] } target_json["Values"].append(value_item) # 序列化为格式化的JSON字符串(indent=4让输出更易读) output_json_str = json.dumps(target_json, indent=4) print(output_json_str)
代码说明
- 导入json模块:Python标准库自带,用来完成Python字典和JSON字符串的转换
- 输入列表:
input_list就是你算法生成的动态多维列表,不管有多少个子列表都能处理 - 初始化目标结构:先搭好外层的JSON框架,
Values初始化为空数组,后续逐个添加元素 - 遍历转换:循环每个子列表,把元素对应到指定字段,再添加到
Values数组里;加了len(sub_list) ==4的判断,避免如果子列表格式异常时出现索引错误 - 序列化输出:
json.dumps()把Python字典转成JSON字符串,indent=4是为了让输出排版更美观,不需要的话可以删掉这个参数
运行这段代码后,输出的JSON格式完全符合你的要求,哪怕输入有10个甚至更多子列表也能正常处理。
内容的提问来源于stack exchange,提问作者S Andrew
相关产品推荐
相关产品推荐

