gremlin python检索id和标签(valueMap(True))

时间:2018-01-19 23:13:52

标签: python python-3.x gremlin tinkerpop3 amazon-neptune

python g.V('test_red1').valueMap().toList()

工作正常,但当我将true传递给请求ID和标签时,我收到此错误。我缺少什么?

g.V('test_red1').valueMap(True).toList()

  Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/ec2-user/environment/merchantGraph/gremlin_python/process/traversal.py", line 52, in toList
    return list(iter(self))
  File "/home/ec2-user/environment/merchantGraph/gremlin_python/process/traversal.py", line 43, in __next__
 ...

我错过了什么。我正在使用AWS Neptune ......

我正在添加额外的导入语句

和追溯

import time
import requests
import json
from gremlin_python import statics
from gremlin_python.structure.graph import Graph
from gremlin_python.process.graph_traversal import __
from gremlin_python.process.strategies import *
from gremlin_python.driver.driver_remote_connection import DriverRemoteConnection


import boto3
from os import environ

graph = Graph()
g = graph.traversal().withRemote(DriverRemoteConnection(environ['gremlinNeptuneConnection'],'g'))


# this works
g.V('test_red1').valueMap().toList()

# this fails
g.V('test_red1').valueMap(True).toList()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/ec2-user/environment/merchantGraph/gremlin_python/process/traversal.py", line 52, in toList
    return list(iter(self))
  ....
  File "/home/ec2-user/environment/merchantGraph/gremlin_python/structure/io/graphsonV3d0.py", line 455, in objectify
    new_dict[reader.toObject(l[x])] = reader.toObject(l[x + 1])

TypeError: unhashable type: 'dict'

1 个答案:

答案 0 :(得分:3)

我的猜测是,您最近报告的valueMap(true)错误:

https://issues.apache.org/jira/browse/TINKERPOP-1860

它已修补,将在3.3.2版本中修复。在此之前,你将不得不解决这个问题,因为没有修复程序没有恢复到GraphSON 2.0(它带有它自己的一组缺点)。一种解决方法是project()您的结果:

gremlin> g.V().project('props','id','label').
......1>         by(valueMap()).
......2>         by(id).
......3>         by(label)
==>[props:[name:[marko],age:[29]],id:1,label:person]
==>[props:[name:[vadas],age:[27]],id:2,label:person]
==>[props:[name:[lop],lang:[java]],id:3,label:software]
==>[props:[name:[josh],age:[32]],id:4,label:person]
==>[props:[name:[ripple],lang:[java]],id:5,label:software]
==>[props:[name:[peter],age:[35]],id:6,label:person]