| import networkx as nx | |
| G = nx.read_graphml("./dickensTestEmbedcall/graph_chunk_entity_relation.graphml") | |
| def get_all_edges_and_nodes(G): | |
| # Get all edges and their properties | |
| edges_with_properties = [] | |
| for u, v, data in G.edges(data=True): | |
| edges_with_properties.append( | |
| { | |
| "start": u, | |
| "end": v, | |
| "label": data.get( | |
| "label", "" | |
| ), # Assuming 'label' is used for edge type | |
| "properties": data, | |
| "start_node_properties": G.nodes[u], | |
| "end_node_properties": G.nodes[v], | |
| } | |
| ) | |
| return edges_with_properties | |
| # Example usage | |
| if __name__ == "__main__": | |
| # Assume G is your NetworkX graph loaded from Neo4j | |
| all_edges = get_all_edges_and_nodes(G) | |
| # Print all edges and node properties | |
| for edge in all_edges: | |
| print(f"Edge Label: {edge['label']}") | |
| print(f"Edge Properties: {edge['properties']}") | |
| print(f"Start Node: {edge['start']}") | |
| print(f"Start Node Properties: {edge['start_node_properties']}") | |
| print(f"End Node: {edge['end']}") | |
| print(f"End Node Properties: {edge['end_node_properties']}") | |
| print("---") | |