我在Python中执行以下查询,以返回存储在Apache AGE中的所有节点的列表。
with postgresql.cursor() as cursor:
query = """SELECT * FROM cypher('graph', $$ MATCH (v) RETURN v $$) as (v agtype);"""
cursor.execute(query)
for row in cursor:
print(row[0])
但是这里的row[0]
是str
而不是<class 'age.models.Node'>
类型。我需要访问该节点的id、label和其他属性,我可以通过使用row[0].id
或row[0].label
轻松地使用<class 'age.models.Node'>
完成这些操作。我不能用str类型来做这件事。
我目前正在尝试使用pytest_postgresql
中的pytest
和factories
编写单元测试用例。当我使用psycopg2
运行相同的东西时,它可以正常工作,并且返回预期的数据类型,但使用pytest_postgresql
失败。
这是设置数据库的代码。
postgresql_my_proc = factories.postgresql_proc()
postgresql_my = factories.postgresql('postgresql_my_proc')
是pytest_postgresql
的问题吗?是否有可能解决这个问题,是否有一些解决办法来实现相同的问题?
3条答案
按热度按时间ryhaxcpt1#
你应该使用Apache AGE Python Driver。这样,检索节点ID和标签将非常容易,如以下示例所示:
可以看到更多样品here。
pieyvz9o2#
我刚刚看到了一个来自apache时代GitHub文档的示例,他们正在使用另一种方法来检索这些东西。
单个结果列
多结果列
你可以从这个文件中得到更多的信息。
Github File
wnavrhmk3#
您的查询可能返回
str
类型,因为您没有加载AGE python驱动程序。你应该使用这个link访问github上的AGE python示例,以了解你可能做错了什么。