2013-10-24 34 views
1

我傳遞形式的字典燈泡的Neo4j更新錯誤

{'twitterid':121212, 'followers':[121,212323,2323,1221]} 

的功能createVertex

def createVertex(userDict): 
    vertex = g.vertices.create(twitterid=userDict['twitterid']) 
    g.vertices.update(vertex.eid, userDict) 

    while not 'followers' in list(vertex.data().iterkeys()): 
     print "trying " + str(vertex.twitterid) 

    return vertex 

它陷在while循環。我懷疑更新或種族問題有「提交」問題。有人可以建議如何解決這個問題?

謝謝

回答

1

沒有競爭條件。在您提供的示例中,vertex不包含userDict,因爲update()不會修改它。使用save()代替:

def createVertex(userDict): 
    vertex = g.vertices.create(twitterid=userDict['twitterid']) 

    vertex.followers = userDict['followers'] 
    vertex.save() 

    return vertex 

https://github.com/espeed/bulbs/blob/master/bulbs/element.py#L505

但是,你能做到以上所有的一步:

vertex = g.vertices.create(userDict) 

https://github.com/espeed/bulbs/blob/master/bulbs/element.py#L551