如何从两个独立列表生成指定结构的JSON对象?
问题描述
我拥有以下两个列表:
['value1', 'value1', 'value1', 'value2', 'value2', 'value2', 'value3', 'value3', 'value3'] ['value1_link1', 'value1_link2', 'value1_link3', 'value2_link1', 'value2_link2', 'value2_link3', 'value3_link1', 'value3_link2', 'value3_link3']
希望按如下格式生成JSON对象:
[ { "timestamp":"string", "ext":"value1", "discoveredlinks":['value1_link1', 'value1_link2', 'value1_link3'] }, { "timestamp":"string", "ext":"value2", "discoveredlinks":['value2_link1', 'value2_link2', 'value2_link3'] }, { "timestamp":"string", "ext":"value3", "discoveredlinks":['value3_link1', 'value3_link2', 'value3_link3'] } ]
解决方案
可以用Python实现需求,步骤如下:
- 配对两个列表的元素,按
ext值分组收集对应的链接 - 为每个分组生成指定格式的字典,最后转换为JSON
示例代码:
import json from collections import defaultdict ext_list = ['value1', 'value1', 'value1', 'value2', 'value2', 'value2', 'value3', 'value3', 'value3'] link_list = ['value1_link1', 'value1_link2', 'value1_link3', 'value2_link1', 'value2_link2', 'value2_link3', 'value3_link1', 'value3_link2', 'value3_link3'] # 分组收集对应链接 grouped_links = defaultdict(list) for ext, link in zip(ext_list, link_list): grouped_links[ext].append(link) # 构建目标JSON结构 result = [] for ext, links in grouped_links.items(): result.append({ "timestamp": "string", "ext": ext, "discoveredlinks": links }) # 输出格式化后的JSON print(json.dumps(result, indent=3))
运行代码后,输出的JSON格式将与需求完全匹配。
内容的提问来源于stack exchange,提问作者Rusty cole
相关产品推荐
相关产品推荐

