d = {'name': 'Alice', 'age': 22}
d = {k: ("'{}'".format(v) if isinstance(v, str) else v) for k, v in
    list(d.items())}
cond = ' AND '.join('p.{}={}'.format(prop, value) for prop, value in list(d.items()))
query = 'MATCH (p:Person) {condition} RETURN p'
query = query.format(condition=cond)
results = graph.cypher.execute(query)
py2neo: Graph.find_one with multiple key/values