Python 批处理事务的Py2Neo问题-AttributeError:&x27;节点';对象没有属性';上';
在询问之后,我尝试使用Py2Neo的批处理事务来加快速度。我对代码做了很多修改,但似乎无法构建和执行一批事务。匹配很好,只是底部的事务部分有问题-我想我会包括我的全部代码,以防万一。我得到的当前错误如下:Python 批处理事务的Py2Neo问题-AttributeError:&x27;节点';对象没有属性';上';,python,neo4j,transactions,py2neo,Python,Neo4j,Transactions,Py2neo,在询问之后,我尝试使用Py2Neo的批处理事务来加快速度。我对代码做了很多修改,但似乎无法构建和执行一批事务。匹配很好,只是底部的事务部分有问题-我想我会包括我的全部代码,以防万一。我得到的当前错误如下: AttributeError Traceback (most recent call last) <ipython-input-5-953d29f58a36> in <module> 108
AttributeError Traceback (most recent call last)
<ipython-input-5-953d29f58a36> in <module>
108 a = nodes[x]
109 print(a)
--> 110 tx.run(a)
111 rela = Relationship(s, "HOMOZYGOUS", a, HTA=h1, HTB=h2, GT=genotype, dp=read_depth, phase_set=ps1, PL0=PL0, PL1=PL1, PL2=PL2, GP0=GP0, GP1=GP1, GP2=GP2)
112 print(rela)
~/anaconda3/envs/genome/lib/python3.6/site-packages/py2neo/database.py in run(self, cypher, parameters, **kwparameters)
803 graph=self.graph,
804 keys=[],
--> 805 entities=entities))
806 except CypherError as error:
807 raise GraphError.hydrate({"code": error.code, "message": error.message})
~/anaconda3/envs/genome/lib/python3.6/site-packages/py2neo/internal/connectors.py in run(self, statement, parameters, tx, graph, keys, entities)
285 return self._run_1(statement, parameters, graph, keys, entities)
286 else:
--> 287 return self._run_in_tx(statement, parameters, tx, graph, keys, entities)
288
289 def begin(self):
~/anaconda3/envs/genome/lib/python3.6/site-packages/py2neo/internal/connectors.py in _run_in_tx(self, statement, parameters, tx, graph, keys, entities)
269 hydrator.keys = result.keys()
270
--> 271 tx.run(statement, dehydrated_parameters or {}, on_success=update_metadata_with_keys, on_failure=fail)
272 tx.pull_all(on_records=lambda records: result.append_records(map(hydrator.hydrate, records)),
273 on_success=result.update_metadata, on_failure=fail, on_summary=result.done)
~/anaconda3/envs/genome/lib/python3.6/site-packages/neobolt/direct.py in run(self, statement, parameters, mode, bookmarks, metadata, timeout, **handlers)
292 fields = (statement, parameters)
293 log_debug("[#%04X] C: RUN %s", self.local_port, " ".join(map(repr, fields)))
--> 294 if statement.upper() == u"COMMIT":
295 self._append(b"\x10", fields, CommitResponse(self, **handlers))
296 else:
AttributeError: 'Node' object has no attribute 'upper'
我将节点作为对象添加到查询中,但这会很好地打印出来:例如,它返回:
(_0:Allele:Chromosome_1:Reference {SNPid: 'rs147999235', bp: 'T', pos: 738539})
对于节点,以及:
(_971387)-[:HOMOZYGOUS {GP0: 1.0, GP1: 0.0, GP2: 0.0, GT: '0|0', HTA: 0, HTB: 0, PL0: 0, PL1: 21, PL2: 166, dp: 7, phase_set: 28590}]->(_0)
为了一段关系,这是应该的
任何帮助都将不胜感激。错误来自尝试“运行”节点和关系对象。
tx.run
方法将一个密码字符串作为其第一个参数,因此像tx.run(a)
这样的行没有语义意义。谢谢。我现在把它全部改成了密码查询,它似乎起作用了。
(_971387)-[:HOMOZYGOUS {GP0: 1.0, GP1: 0.0, GP2: 0.0, GT: '0|0', HTA: 0, HTB: 0, PL0: 0, PL1: 21, PL2: 166, dp: 7, phase_set: 28590}]->(_0)