You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Grakn Python Client获取查询所有变量并解决报错

获取Grakn查询中所有变量的解决方案

首先,咱们先搞清楚你遇到的错误原因:你的查询语句里定义的变量是$p、$f、$r,但代码里却尝试获取"x"这个变量——这个变量在你的查询里根本不存在,所以answer.map().get("x")返回了None,当你试图访问None.id时自然就触发了AttributeError。

接下来回到你的核心需求:无需逐个指定变量就能获取查询中的所有变量,其实Grakn Python Client的Answer对象提供的map()方法已经返回了包含所有查询变量的字典,你只需要遍历这个字典就能拿到所有变量及其对应的值,不用手动指定每个变量名。

正确的代码示例

read_query = "match $p isa person; $f isa family; $r ($p, $f); get;"
answer_iterator = read_transaction.query(read_query)

for answer in answer_iterator:
    # 获取当前结果中所有变量的键值对,键是不带$的变量名(如"p"、"f"、"r")
    all_variables = answer.map()
    # 遍历所有变量
    for var_name, var_value in all_variables.items():
        print(f"Retrieved variable *${var_name}* with id {var_value.id}")

补充说明

  • answer.map()返回的字典中,键是查询里变量名去掉$后的字符串(比如查询里的$p对应字典里的键"p")
  • 如果你需要一次性获取所有变量的值,也可以直接通过字典的values()方法拿到,比如all_values = all_variables.values()

内容的提问来源于stack exchange,提问作者user7420209

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 21:22:31