Webseite der LUG Frankfurt mit Hugo
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

54 lines
2.0 KiB

import redis
from redisgraph import Node, Edge, Graph
def print_res(result):
# Iterate through resultset, skip header row at position 0
for record in result.result_set:
person_name = record[0]
person_age = record[1]
person_gender = record[2]
person_status = record[3]
country_name = record[4]
print('Name: {:>12}\tAge: {:>4}\tGender: {:>6}\tStatus: {:>10}\t Country: {}'.format(person_name, person_age,
person_gender,
person_status,
country_name))
def main():
r = redis.Redis(decode_responses=True, host='localhost', port=6379)
r.delete('travel')
redis_graph = Graph('travel', r)
john = Node(label='person', properties={'name': 'John Doe', 'age': 33, 'gender': 'male', 'status': 'single'})
redis_graph.add_node(john)
japan = Node(label='country', properties={'name': 'Japan'})
redis_graph.add_node(japan)
edge_john = Edge(john, 'visited', japan, properties={'purpose': 'pleasure'})
redis_graph.add_edge(edge_john)
pearl = Node(label='person', properties={'name': 'Pearl White', 'age': 25, 'gender': 'female', 'status': 'married'})
redis_graph.add_node(pearl)
australia = Node(label='country', properties={'name': 'Australia'})
redis_graph.add_node(australia)
edge_pearl = Edge(pearl, 'visited', australia, properties={'purpose': 'business'})
redis_graph.add_edge(edge_pearl)
redis_graph.commit()
print('')
for i in ['pleasure', 'business']:
print('==== Purpose: {} ===='.format(i))
query = f'''MATCH (p:person)-[v:visited {{purpose:"{i}"}}]->(c:country)
RETURN p.name, p.age, p.gender, p.status, c.name'''
result = redis_graph.query(query)
print_res(result)
print('')
if __name__ == '__main__':
exit(main())