[Twisted-Python] is twisted compatible with pickle?

Laurens Van Houtven _ at lvh.cc
Fri Mar 29 05:57:22 MDT 2013


While everything the people above me have said is correct, I would suggest
AMP as an alternative. It would allow you to send most basic Python data
types in your messages.
On Mar 29, 2013 2:32 AM, "succer110 at tiscali.it" <succer110 at tiscali.it>
wrote:

> I have made 2 application:
> The client extract data from a sql server (10k lines), and send every line
> pickled to a "collector" server via socket.
> The server uses twisted and receive every line, unpikle it and store the
> data in another sql server.
>
> Everytime i start sending data from client to server, in the first 200
> line (everytime a different line) **the server** throws an exception:
> SOMETIMES it something like:
>
>     Traceback (most recent call last):
>       File "collector2.py", line 81, in dataReceived
>         self.count,account = pickle.loads(data)
>       File "/usr/lib/python2.6/pickle.py", line 1374, in loads
>         return Unpickler(file).load()
>       File "/usr/lib/python2.6/pickle.py", line 858, in load
>         dispatch[key](self)
>       File "/usr/lib/python2.6/pickle.py", line 1138, in load_pop
>         del self.stack[-1]
>     IndexError: list assignment index out of range
>
> But it's NOT every time the same. Printing my exception i red:
> Exception: pop from empty list
> Exception: list index out of range
> Exception: "'"
> Exception: list assignment index out of range
>
> Another strange errors is:
> File "/usr/lib/python2.6/pickle.py", line 1124, in find_class
>     __import__(module)
> exceptions.ImportError: No module named ond'
>
>     for i in listaSAI:
>     crm={}
>         try:
>     crm['uid']=i[0]
>     except:
>     crm['uid']=None
>     try:
>     crm['type_cond']=i[01]
>     except:
>     crm['type_cond']=None
>     try:
>     crm['population_id']=i[2]
>     except:
>     crm['population_id']=None
>     try:
>     crm['product_id']=i[3]
>     except:
>     crm['product_id']=None
>     try:
>     crm['a_id']=i[4]
>     except:
>     crm['a_id']=None
>     try:
>     crm['status']=i[5]
>     except:
>     crm['status']=None
>     #time.sleep(0.001)
>     serialized = pickle.dumps((count,crm))
>     #print "sent num", count, crm
>     s.sendall(serialized)
>     count += 1
>
>
> And my server:
>
>     def dataReceived(self, data):
>     try:
>     self.count,account = pickle.loads(data)
>     except Exception as e:
>     print "Eccezione:", e
>     print self.count+1
>     print  data
>     print traceback.print_exc()
>
>
>
> Printing the data in my client tells me that everything it's ok.
> *If i try to slow down the process of sending using time.sleep(0.01) in my
> client, EVERYTHING IS FINE, and no exception are raised.*
>
> What can i do to debug my code?
>
> p.s.
> I suspect that exceptions.ImportError: No module named ond' refers to
> "type_cond" key in crm.
>
>
> Invita i tuoi amici e Tiscali ti premia! Il consiglio di un amico vale più
> di uno spot in TV. Per ogni nuovo abbonato 30 € di premio per te e per lui!
> Un amico al mese e parli e navighi sempre gratis:
> http://freelosophy.tiscali.it/
>
>
> _______________________________________________
> Twisted-Python mailing list
> Twisted-Python at twistedmatrix.com
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-python/attachments/20130329/e88883f7/attachment.html>


More information about the Twisted-Python mailing list