首页 > 解决方案 > 如何将密码查询值存储到 python 函数内的变量中?

问题描述

我想存储我的 neo4j 数据库中数据的平均价格,然后我可以使用 python 变量来定义产品是便宜还是昂贵。

我已经有了密码查询,它为我提供了我数据库中所有服务的所有平均价格。现在我想将此查询结果存储到变量或列表中。所以我可以用它来定义价格是便宜还是昂贵(如果价格<=平均)它是便宜的,否则它是昂贵的。


      def average(self):

           query = '''
              MATCH (p:Price)-[:COSTS]-(s:Service)
              RETURN avg(toFloat(p.monthly)) AS Average, p.currency AS Currency, s.service_name AS Service
               '''
           return  graph.run(query, average= self.Average, currency= self.Currency, service_name=self.Service )

谁能帮我解决这个问题?

标签: pythonneo4jcypherpy2neo

解决方案


您的查询可以返回多行,因为它指定CurrencyService作为AVG 聚合函数的唯一分组键。所以average()可能应该返回类似字典列表的东西。

run()函数返回一个Cursor,它具有一个data()函数,该函数将“将整个结果提取为字典列表”。

所以,这个版本average()应该返回查询结果的字典列表:

  def average(self):
       query = '''
          MATCH (p:Price)-[:COSTS]-(s:Service)
          RETURN avg(toFloat(p.monthly)) AS Average, p.currency AS Currency, s.service_name AS Service
           '''
       return graph.run(query).data()

推荐阅读