错误,解压缩的值太多

时间:2014-03-09 23:50:32

标签: python neo4j py2neo

我需要纠正这个例外:“打开太多值”

这是我的源代码:我需要插入一个节点,如果我的数据库中不存在,或者它存在,我只添加新节点的新关系:)

from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener
import time
import tweepy
import codecs
import json
from time import clock
from py2neo import neo4j
from py2neo import node,rel

cle = 'NorVSuR1eh0xdzkex4Y4mA'
clesecrete = 'F0AbGFdmMrwNhDKYGKzEQrqXTMEViKW'
jeton = '2234554214-sBqwoOCCEBVRktuCBeVdVhu6dluUfLSbecq'
jetonsecret = 'KaagCeViNedcHrSctsGoXNHq0nWTV6E4t6x4ddXrYzL'
graph_db = neo4j.GraphDatabaseService("http://localhost:7474/db/data/")

class listener(StreamListener):
     def on_data(self,data):

       try:
           if 'text' in data:

                tweet = json.loads(data)

                if tweet['in_reply_to_screen_name'] != None:
                    user_scr_Com=tweet['user']['screen_name']
                    print user_scr_Com
                    nod = list(graph_db.find("user_qui_a_commenter", "screen_name" , user_scr_Com ))
                    print nod

                         if len(nod)>0 :
                          for nd in nod:
#**#-My problem is here: I have a except Error, too many values to unpack**

                              User_Publication,text= graph_db.create(    
                                  node(Screen_name_User_Publication=tweet['in_reply_to_screen_name']),
                                  node(Commentaire=tweet['text'],Id_text=tweet['id_str'],source=tweet['source']),
                                  rel(nd, "user_a_commenter", 1),
                                  rel(1, "pour", 0))

                              User_Publication.add_label("user_status")
                              text.add_label("Commentaire")

                          else :
                         user_qui_a_commenter,User_Publication,text= graph_db.create(
                           node(Screen_name=tweet['user']['screen_name'],name=tweet['user']['name'],Id=tweet['user']['id_str'],Description=tweet['user']['description'],followers_count=tweet['user']['followers_count'],friends_count=tweet['user']['friends_count'],favourites_count=tweet['user']['favourites_count'],created_at=tweet['user']['created_at'],langue=tweet['user']['lang'],location=tweet['user']['location']),
                           node(Screen_name_User_Publication=tweet['in_reply_to_screen_name']),
                           node(Commentaire=tweet['text'],Id_text=tweet['id_str'],source=tweet['source']),
                           rel(0, "A_commenter_Pour", 1),
                           rel(0, "user_a_commenter", 2))
                         user_qui_a_commenter.add_label("user_qui_a_commenter")
                         User_Publication.add_label("user_status")
                         text.add_label("Commentaire")

谢谢,我需要你的帮助

1 个答案:

答案 0 :(得分:1)

错误与此行

相关联

User_Publication,text= graph_db.create(...

你期待结果的两元组,但你得到的不仅仅是那个。

我对Neo4j一无所知,但是from here你似乎得到了相同数量的物品。如果是这样,那么你应该期待一个四元素的元组。

# create two nodes with a connecting relationship
alice, bob, rel = graph_db.create(
    {"name": "Alice"}, {"name": "Bob"},
    (0, "KNOWS", 1, {"since": 2006})
)

所以这会解决你的问题

User_Publication, text, var3, var4 = graph_db.create(...

看起来这会在您的代码中稍后再次发生。将返回关系以及节点的项目。