首页 > 解决方案 > 我的数据库查询输出中的“< >”是什么意思?

问题描述

我编写了一个查询来从 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。

标签: pythonneo4jcypher

解决方案


您的查询结果包括:

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

在您的情况下,您查询返回 a Node,这就是为什么您有Th​​is <Node ... > object (ie. neo4j.v1.types.graph.Node) 来自 Neo4j python 驱动程序。您可以在此处查看文档:https ://neo4j.com/docs/api/python-driver/current/types/graph.html#neo4j.types.graph.Node

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

  • results[0]:获取您查询的第一个结果
  • [0]:获取结果的第一列,这里是Node
  • ['ns1__images']: 检索ns1__images节点的属性

推荐阅读