如何从数据库返回的路径字符串中提取指定节点后的唯一子节点值
提取指定节点后的层级节点并去重
需求说明
从数据库返回的层级路径字符串中,提取节点4762828之后的所有层级节点值,最终去重得到格式为(864056,867339,867363,2201031,2201101)的结果。
处理步骤(Python实现)
- 将所有路径字符串整理为列表,处理每条路径的首尾斜杠后分割成节点数组
- 定位目标节点
4762828的位置,截取该节点之后的所有节点 - 利用集合自动去重特性收集节点,最后整理成要求的格式
代码示例
# 数据库返回的路径列表 path_list = [ "/2192519/863601/4762828/864056/", "2192519/863601/4762828/864056/867339/", "/2192519/863601/4762828/864056/867363/", "/2192519/863601/4762828/864056/2201031/", "/2192519/863601/4762828/864056/2201101/", "/2192519/863601/4762828/" ] target_node = "4762828" result_set = set() for path in path_list: # 去除首尾斜杠并分割节点 nodes = path.strip("/").split("/") try: # 找到目标节点位置,截取后续节点 idx = nodes.index(target_node) result_set.update(nodes[idx+1:]) except ValueError: # 路径不含目标节点则跳过 continue # 整理成指定格式 final_result = f"({','.join(result_set)})" print(final_result)
运行结果
(864056,867339,867363,2201031,2201101)
内容的提问来源于stack exchange,提问作者Abdel
相关产品推荐
相关产品推荐

