Python中将嵌套列表转换为指定格式JSON的技术咨询
嵌套列表转指定结构JSON的实现
需求说明
现有一个嵌套列表,每个子列表包含约10000个元素,示例如下:
[['x1', 'y1', 'z1', 'w2'], ['x2', 'y2', 'z2', 'p3'], ['r3', 't3', 'n3']]
需要将每个子列表转换为指定结构的JSON:把结构中的#Number替换为子列表的各个元素,Text固定为"msg",其余字段保持固定字符串。指定JSON结构如下:
{ "SchedTime": "string", "Messages": [ { "Number": "#Number", "Text": "msg" } ], "keyID": "string", "ClientId": "string" }
比如第一个子列表转换后结果为:
{ "SchedTime": "string", "Messages": [ { "Number": "x1", "Text": "msg" }, { "Number": "y1", "Text": "msg" }, { "Number": "z1", "Text": "msg" }, { "Number": "w2", "Text": "msg" } ], "keyID": "string", "ClientId": "string" }
实现代码(Python)
考虑到每个子列表元素量较大,用列表推导式生成Messages数组效率更高,再结合json模块完成序列化:
import json def list_to_json(sub_list): # 生成Messages数组 messages = [{"Number": item, "Text": "msg"} for item in sub_list] # 组装完整JSON结构 result = { "SchedTime": "string", "Messages": messages, "keyID": "string", "ClientId": "string" } return json.dumps(result, indent=2) # 示例输入 input_list = [['x1', 'y1', 'z1', 'w2'], ['x2', 'y2', 'z2', 'p3'], ['r3', 't3', 'n3']] # 批量转换并输出 for idx, sub_list in enumerate(input_list): print(f"第{idx+1}个子列表转换结果:") print(list_to_json(sub_list)) print("-" * 50)
注意事项
- 若子列表元素量达到10000级,生成的JSON会比较大,建议按需写入文件而非直接打印,避免内存占用过高:
# 写入文件示例 with open(f"output_{idx+1}.json", "w", encoding="utf-8") as f: f.write(list_to_json(sub_list)) - 如果需要处理更大量的子列表,可考虑分批次处理,避免一次性加载所有数据到内存。
内容的提问来源于stack exchange,提问作者Okanda4life
相关产品推荐
相关产品推荐

