DuckDB:聚合JSON列表(去重)——提取嵌套值唯一列表方法
如何将JSON中的嵌套列表展平为唯一值列表?
要实现将嵌套列表展平并提取唯一值的需求,可以通过以下步骤完成,这里以Python为例:
- 解析JSON数据:将原始JSON字符串转换为Python字典,方便后续操作。
- 展平嵌套列表:遍历所有子列表,把元素合并到一个一维列表中。
- 去重处理:去除列表中的重复值,可选保持元素的首次出现顺序。
- 重新生成JSON:将处理后的列表重新构造成目标格式的JSON。
示例代码
import json # 原始JSON数据 raw_data = '{"unique_values":[["105125"],["105125"],["105125","0"]]}' parsed_data = json.loads(raw_data) # 展平嵌套列表 flattened_list = [] for sublist in parsed_data["unique_values"]: flattened_list.extend(sublist) # 去重(Python 3.7+ 可保持元素首次出现的顺序) unique_list = list(dict.fromkeys(flattened_list)) # 构造结果并输出JSON result = {"unique_values": unique_list} print(json.dumps(result))
输出结果
{"unique_values": ["105125", "0"]}
如果不需要保持元素顺序,也可以用list(set(flattened_list))快速去重,但这种方式会打乱元素的原始出现顺序。
内容的提问来源于stack exchange,提问作者user528025
相关产品推荐
相关产品推荐

