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("---") | |