首页 > 解决方案 > 为什么我使用 gramlin_python 的客户端实例得到“AttributeError:'NoneType'对象没有属性'处理器'”?

问题描述

我正在使用 Jupyter Notebook 在 Neptune 数据库上执行 gremlin 查询并从 MySQL 数据库中检索信息并生成 gremlin 查询字符串,该字符串由“gremlin_python 库”的客户端模块执行,如下所示。

def getConnectionWithNeptuneGraphDB():
    global clientt
    if clientt is not None:
        print('clientt instance is available')
    else:
        print('clientt is not available')
        clientt = client.Client('neptune_db_endpoint', 'g')
    return clientt

#function to Create Person Node
def createPersonNode():
    personsInfo = getPersonInformation(companyIdTouple)
    print(personsInfo)
    personGremQry = queryToCreatePersonNode(personsInfo)
    clientt = getConnectionWithNeptuneGraphDB()
    clientt.submit(personGremQry)
    #print(personsInfo)
    print('Person Node created successfully')

def main():
    #Process to Create Company Node
    createCompanyNode()
    #Process to Create Person Node
    createPersonNode()      
    connection.close()
    clientt.close()

main() 函数是这里的入口点,在执行中,createCompanyNode() 工作正常并在数据库中获取公司,但是在执行 createPersonNode() 时,这显示以下错误,即使我尝试只执行 createPersonNode(),仍然是同样的错误.

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-558-263240bbee7e> in <module>
----> 1 main()

<ipython-input-557-e622c1b6eefc> in main()
      1 def main():
      2     #createCompanyNode()
----> 3     createPersonNode()
      4     connection.close()
      5     clientt.close()

<ipython-input-550-60763852d6da> in createPersonNode()
     16     personGremQry = queryToCreatePersonNode(personsInfo)
     17     clientt = getConnectionWithNeptuneGraphDB()
---> 18     clientt.submit(personGremQry)
     19     #print(personsInfo)
     20     print('Person Node created successfully')

~/anaconda3/envs/JupyterSystemEnv/lib/python3.6/site-packages/gremlin_python/driver/client.py in submit(self, message, bindings, request_options)
    128 
    129     def submit(self, message, bindings=None, request_options=None):
--> 130         return self.submitAsync(message, bindings=bindings, request_options=request_options).result()
    131 
    132     def submitAsync(self, message, bindings=None, request_options=None):

~/anaconda3/envs/JupyterSystemEnv/lib/python3.6/concurrent/futures/_base.py in result(self, timeout)
    423                 raise CancelledError()
    424             elif self._state == FINISHED:
--> 425                 return self.__get_result()
    426 
    427             self._condition.wait(timeout)

~/anaconda3/envs/JupyterSystemEnv/lib/python3.6/concurrent/futures/_base.py in __get_result(self)
    382     def __get_result(self):
    383         if self._exception:
--> 384             raise self._exception
    385         else:
    386             return self._result

~/anaconda3/envs/JupyterSystemEnv/lib/python3.6/site-packages/gremlin_python/driver/connection.py in cb(f)
     64         def cb(f):
     65             try:
---> 66                 f.result()
     67             except Exception as e:
     68                 future.set_exception(e)

~/anaconda3/envs/JupyterSystemEnv/lib/python3.6/concurrent/futures/_base.py in result(self, timeout)
    423                 raise CancelledError()
    424             elif self._state == FINISHED:
--> 425                 return self.__get_result()
    426 
    427             self._condition.wait(timeout)

~/anaconda3/envs/JupyterSystemEnv/lib/python3.6/concurrent/futures/_base.py in __get_result(self)
    382     def __get_result(self):
    383         if self._exception:
--> 384             raise self._exception
    385         else:
    386             return self._result

~/anaconda3/envs/JupyterSystemEnv/lib/python3.6/concurrent/futures/thread.py in run(self)
     54 
     55         try:
---> 56             result = self.fn(*self.args, **self.kwargs)
     57         except BaseException as exc:
     58             self.future.set_exception(exc)

~/anaconda3/envs/JupyterSystemEnv/lib/python3.6/site-packages/gremlin_python/driver/protocol.py in write(self, request_id, request_message)
     72     def write(self, request_id, request_message):
     73         message = self._message_serializer.serialize_message(
---> 74             request_id, request_message)
     75         self._transport.write(message)
     76 

~/anaconda3/envs/JupyterSystemEnv/lib/python3.6/site-packages/gremlin_python/driver/serializer.py in serialize_message(self, request_id, request_message)
    134 
    135     def serialize_message(self, request_id, request_message):
--> 136         processor = request_message.processor
    137         op = request_message.op
    138         args = request_message.args

AttributeError: 'NoneType' object has no attribute 'processor'

标签: pythongremlinamazon-neptunegremlinpython

解决方案


推荐阅读