如何将列表传递到Py2neo密码查询中

时间:2019-02-07 10:26:01

标签: neo4j cypher py2neo

我正在尝试将值列表传递到Py2neo Cypher查询中,并将该列表用作查询的参数。我目前遇到一些困难。我正在尝试将公司列表传递给查询,并将查询结果返回到Pandas DataFrame。

我当前正在使用的代码如下所示。出于演示目的,此处的公司列表已缩短,实际上是数百家公司。

my_list = ['Company_1','Company_2','Company_3','Company_4']

my_query = '''(c1:Company)-[r:HAS_SUPPLIER]-(c2:Company) where 
                c1.name in ['{mylist}'] Return c1.name, r.rank, c2.name'''

company_df = graph.cypher.execute(my_query)
company_df = pd.DataFrame(company_df .records, columns=company_df.columns)

我收到的错误消息如下:

AttributeError: module 'py2neo.cypher.error.statement' has no attribute 'SyntaxError'

任何人可以提供的帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

你可以试试吗:

params = {}
params['mylist'] = ['Company_1','Company_2','Company_3','Company_4']

my_query = '(c1:Company)-[r:HAS_SUPPLIER]-(c2:Company) where 
                c1.name in $mylist Return c1.name, r.rank, c2.name'

company_df = graph.cypher.execute(my_query, params)