2015-03-20 4 views
1

Работа с py2neo, и я получаю ошибку ниже при попытке добавить сделку:py2neo поднял законченную (Self) ошибка

statement ="MERGE (a:Person {name:\""+actorName+"\"}) "\ 
      "\n"\ 
      "MERGE (b:Series {title:\""+actorsFields[3]+"\", year:\""+actorsFields[5]+"\"}) "\ 
      "\n"\ 
      "CREATE UNIQUE (a)-[:ACTED_IN]->(b)"\ 
      "RETURN a,b" 
print(statement) 
tx.append(statement) 

отслеживающий является:

Traceback (most recent call last): 
    File "/Volumes/PyCharm CE/PyCharm CE.app/Contents/helpers/pydev/pydevd.py", line 2222, in <module> 
    globals = debugger.run(setup['file'], None, None) 
    File "/Volumes/PyCharm CE/PyCharm CE.app/Contents/helpers/pydev/pydevd.py", line 1648, in run 
    pydev_imports.execfile(file, globals, locals) # execute the script 
    File "/Users/Thibault/PycharmProjects/movieGraph/src/mainCypher.py", line 110, in <module> 
    tx.append(statement) 
    File "/Library/Python/2.7/site-packages/py2neo/cypher/core.py", line 220, in append 
    self.__assert_unfinished() 
    File "/Library/Python/2.7/site-packages/py2neo/cypher/core.py", line 192, in __assert_unfinished 
    raise Finished(self) 
py2neo.error.Finished 

какие-либо идеи?

+0

Вы поняли это? – NumenorForLife

+1

nope, закончил с использованием функциональности загрузки пакетных файлов .... отлично работает, так как в настоящее время мне не нужно делать частые обновления, но в какой-то момент мне нужно будет вернуться к нему! –

ответ

0

Вы получите эту ошибку, если вы вызовете tx.commit() дважды без tx = graph.cypher.begin() между ними. Это непростая ошибка, если вы пытаетесь блокировать свои коммиты. Чтобы быть более явным:

#This will give the above error 
tx = graph.cypher.begin() 
for i in range(0,10): 
     tx.append(statement="foo",parameters=bar) 
     tx.commit() 

#This will work fine 
for i in range(0,10): 
     tx = graph.cypher.begin() 
     tx.append(statement="foo",parameters=bar) 
     tx.commit() 
Смежные вопросы