python - 为什么我使用 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'
解决方案
推荐阅读
- python - 用于 N 元组网络的 Keras(稀疏输入)
- r - 如何删除数据框中的重复国家但保留最近一年的条目(R)?
- r - 从 data.table 返回一个列表
- javascript - 如何制作不和谐机器人欢迎命令和离开命令
- openedge - 为什么我无法在 appBuilder 中打开 *.w 文件?
- node.js - 同时运行客户端和服务器应用程序 IIS Express 以进行本地开发
- flutter - 刷新对话框
- css - 在 SASS 类上定义一个单一的背景大小
- php - 使用 php 在 mongoDB 数组中搜索
- vue.js - 选择标签的渲染选项为空白,但生成的选项数量与数据源计数 VUE / IONIC 相同