Python Py2neo-cypher查询结果为_assert_unfinished。有人能告诉我为什么吗?

Python Py2neo-cypher查询结果为_assert_unfinished。有人能告诉我为什么吗?,python,neo4j,py2neo,Python,Neo4j,Py2neo,嗨,我正试图通过从另一个脚本调用该方法来运行此脚本 session = cypher.Session("http://localhost:7474") tx = session.create_transaction() def nodepublish(dpid, port, mac, srcip): tx.append("MATCH (n:Switch) WHERE n.DPID='"+str(dpid)+"' RETURN n") match_switch =

嗨,我正试图通过从另一个脚本调用该方法来运行此脚本

session = cypher.Session("http://localhost:7474")
tx = session.create_transaction()

def nodepublish(dpid, port, mac, srcip):
        tx.append("MATCH (n:Switch) WHERE n.DPID='"+str(dpid)+"' RETURN n")
        match_switch = tx.execute()
        tx.commit()
        for i in match_switch:
                if(i):
                        print "switch exists"
                else:
                        tx.append("CREATE (s:Switch {DPID: '"+str(dpid)+"'})")
                        tx.execute()
                        print ("switch %s  node published" %(dpid))
                        tx.commit()
它总是以这个错误结束

File "/home/thinker/Desktop/Thesis/ryu/ryu/app/vkryuscripts/node_switch_pub_cypher_test.py", line 11, in nodepublish
    tx.append("MATCH (n:Switch) WHERE n.DPID='"+str(dpid)+"' RETURN n")
  File "/usr/local/lib/python2.7/dist-packages/py2neo/cypher.py", line 194, in append
    self._assert_unfinished()
  File "/usr/local/lib/python2.7/dist-packages/py2neo/cypher.py", line 175, in _assert_unfinished
    raise TransactionFinished()
TransactionFinished
有人能告诉我这里有什么错误吗

谢谢

更新: 我发现了别的东西。 如果我尝试在提交后使用append,它将返回此错误


有人知道为什么吗?

一旦事务被提交或回滚,它就会被标记为“已完成”,并且不能重复使用。您需要为每个计划的提交创建一个新事务-在这种情况下,将
commit
移动到函数的末尾,或者为每个循环迭代创建一个新事务