我的数据库查询输出中的“ <>”是什么意思?

时间:2019-07-08 06:02:26

标签: python neo4j cypher

我写了一个查询来从neo4j数据库中提取数据,该数据库使用neomodel模块连接到我的Django应用程序。输出格式如下:

[[<Node id=32 labels={'Resource', 'owl__Class'} properties={'ns1__images': 'https://upload.wikimedia.org/wikipedia/commons/thumb/c/c8/Tottori_sand_dune02_1920.jpg/120px-Tottori_sand_dune02_1920.jpg','ns1__definition': 'Camels\xa0are\xa0a\xa0milk-producing animal.'}>]]

我尝试使用循环并使用索引访问特定元素,但它们没有帮助。

这是我运行的查询:

results, meta = db.cypher_query("MATCH (n) WHERE n.uri =  RETURN n")

我尝试过但没有帮助的事情:

print(results[0][0])

这给出的输出为:

<Node id=32 labels={'Resource', 'owl__Class'} properties={'ns1__images': 'https://upload.wikimedia.org/wikipedia/commons/thumb/c/c8/Tottori_sand_dune02_1920.jpg/120px-Tottori_sand_dune02_1920.jpg','ns1__definition': 'Camels\xa0are\xa0a\xa0milk-producing animal.'}>

当我使用它时:

print(list(results[0][0]))

我将其作为输出而不是数据:

['ns1__images', 'ns1__definition']

我想使用其键访问属性中的数据并获取值。 例如如果我将密钥作为ns1_images给出,我想获得输出作为ns1_image URL。

1 个答案:

答案 0 :(得分:1)

您的查询结果由:

  • 结果列表(第一个数组)
  • 对于每个结果,您都有一个返回项目的数组(请检查元数据)

以您为例,您的查询返回一个Node,因此这就是您拥有<Node ... >的原因 该对象(即neo4j.v1.types.graph.Node)来自Neo4j python驱动程序。 您可以在此处查看文档:{​​{3}}

您可以做的是:print(results[0][0]['ns1__images'])

  • results[0]:获取查询的第一个结果
  • [0]:获取结果的第一列,此处为Node
  • ['ns1__images']:检索节点的属性ns1__images