Вы столкнулись с одним из ограничений от gremlin python в том, что Gremlin может вернуть dict
значения, которые не могут существовать в Python. Вам нужно будет преобразовать эти ключи во что-то, что может существовать в качестве ключа в Python при сохранении информации, содержащейся в ключе. У меня нет образца ваших данных или выходных данных, но в качестве демонстрации я придумал следующее:
gremlin> g.V().both().elementMap().groupCount().unfold()
==>{id=5, label=software, name=ripple, lang=java}=1
==>{id=2, label=person, name=vadas, age=27}=1
==>{id=4, label=person, name=josh, age=32}=3
==>{id=3, label=software, name=lop, lang=java}=3
==>{id=1, label=person, name=marko, age=29}=3
==>{id=6, label=person, name=peter, age=35}=1
С ключом dict
это не будет работать в python и мы получили бы ту же ошибку, что и вы сейчас. Существует много вариантов преобразования этого результата в то, что python может потреблять, но вот простой способ, чтобы заставить вас задуматься о том, что вы могли бы сделать:
gremlin> g.V().both().elementMap().groupCount().unfold().map(union(select(keys),select(values)).fold())
==>[[id:5,label:software,name:ripple,lang:java],1]
==>[[id:2,label:person,name:vadas,age:27],1]
==>[[id:4,label:person,name:josh,age:32],3]
==>[[id:3,label:software,name:lop,lang:java],3]
==>[[id:1,label:person,name:marko,age:29],3]
==>[[id:6,label:person,name:peter,age:35],1]
В приведенном выше примере я деконструирую dict
в list
пар. Теперь на стороне клиента вы знаете, что каждый результат - это одна запись на стороне сервера dict
, где первое значение в паре является ключом, а второе - значением.