我使用的是py2neo版本3,并得到以下错误:
> GET http://localhost:7474/db/data/
< 200 OK [795]
Traceback (most recent call last):
File "run_snomed_upload.py", line 63, in <module>
sp = SnomedConceptProcessor()
File "/home/arron/Downloads/Snomed/neo4j/snomed_concept_processor.py", line 18, in __init__
tx = self.graph.run.begin() # changed .cyhper to .run
AttributeError: 'function' object has no attribute 'begin'代码:
import re
from string import Template
from py2neo import Graph
from py2neo import watch
from worker.abstract_item_processor import BaseItemProcessor
class SnomedConceptProcessor(BaseItemProcessor):
statement = Template("CREATE (c:Concept:FSA:$label {conceptId: \"$id\", term: \"$term\", descType: $descType});")
create_index_concept_id = "CREATE INDEX ON :Concept(conceptId)"
create_index_term = "CREATE INDEX ON :Concept(term)"
def __init__(self):
watch("httpstream")
self.graph = Graph(super().graph_url)
tx = self.graph.run.begin() 我读过,如果使用py2neo v3,那么我需要将.cypher更改为.run,您可以看到我已经这样做了。我是否需要降级为py2neo v2,如果需要,如何在没有并行包的情况下做到这一点?
发布于 2017-06-26 16:12:03
Cypher.run()是接收Cypher语句和参数字典作为参数的函数。您既不将Cypher.run()作为函数调用,也不提供参数。
医生们说:
注意:-- py2neo的前一个版本--允许通过Graph.cypher.execute()执行Cypher。这个工具现在可以通过Graph.run()访问,并返回一个延迟计算的游标,而不是一个急切地计算出来的RecordList。
相同的文档显示了Cypher.run()的使用示例。
>>> from py2neo import Graph
>>> graph = Graph(password="excalibur")
>>> graph.run("MATCH (a:Person) RETURN a.name, a.born LIMIT 4").data()
[{'a.born': 1964, 'a.name': 'Keanu Reeves'},
{'a.born': 1967, 'a.name': 'Carrie-Anne Moss'},
{'a.born': 1961, 'a.name': 'Laurence Fishburne'},
{'a.born': 1960, 'a.name': 'Hugo Weaving'}]https://stackoverflow.com/questions/44763775
复制相似问题