|
|
@ -141,8 +141,8 @@ class Neo4jUtil: |
|
|
params = {f"prop_{k}": v for k, v in properties.items()} |
|
|
params = {f"prop_{k}": v for k, v in properties.items()} |
|
|
cypher += f" WHERE {where_clause}" |
|
|
cypher += f" WHERE {where_clause}" |
|
|
|
|
|
|
|
|
cypher += " RETURN elementId(n) AS id, n{.*} AS props" |
|
|
# cypher += " RETURN elementId(n) AS id, n{.*} AS props" |
|
|
|
|
|
cypher += " RETURN elementId(n) AS id, labels(n) AS labels, n{.*} AS props" |
|
|
raw = self.execute_read(cypher, params) |
|
|
raw = self.execute_read(cypher, params) |
|
|
return [self._merge_id_and_props(row) for row in raw] |
|
|
return [self._merge_id_and_props(row) for row in raw] |
|
|
|
|
|
|
|
|
@ -598,10 +598,15 @@ class Neo4jUtil: |
|
|
# ==================== 内部辅助方法 ==================== |
|
|
# ==================== 内部辅助方法 ==================== |
|
|
|
|
|
|
|
|
def _merge_id_and_props(self, row: Dict[str, Any]) -> Dict[str, Any]: |
|
|
def _merge_id_and_props(self, row: Dict[str, Any]) -> Dict[str, Any]: |
|
|
"""合并 id 和 props""" |
|
|
""" |
|
|
props = dict(row.get("props", {})) |
|
|
将 elementId、labels 和 props 合并为一个扁平字典 |
|
|
props["id"] = row["id"] |
|
|
""" |
|
|
return props |
|
|
result = { |
|
|
|
|
|
"id": row["id"], |
|
|
|
|
|
"labels": row["labels"], # 保留标签列表,如 ["Disease"] |
|
|
|
|
|
**row["props"] # 展开所有属性(name, nodeId 等) |
|
|
|
|
|
} |
|
|
|
|
|
return result |
|
|
|
|
|
|
|
|
def _enrich_relationship(self, row: Dict[str, Any]) -> Dict[str, Any]: |
|
|
def _enrich_relationship(self, row: Dict[str, Any]) -> Dict[str, Any]: |
|
|
"""格式化关系结果""" |
|
|
"""格式化关系结果""" |
|
|
|