[Zope] python help needed

Garry Saddington garry at schoolteachers.co.uk
Tue Jan 19 15:10:56 EST 2010


Andrew Milton wrote:
> +-------[ Garry Saddington ]----------------------
> | I am trying to upload a csv file (called data) using the following script:
> | 
> | i=0
> | d=data.readlines()
> | for row in d:
> |          i+=1
> |          a=row.split(',')
> |          if i > 1:
> |              subjectid=a[0]
> |              entry=a[1]
> |              type=a[2]
> |              studentid=a[3]
> |          try:
> |  
> |  
> | context.insertestimatesandtargets(subjectid=subjectid,entry=entry,type=type,studentid=studentid)
> |          except:
> |              continue
> | return "something good"
> | 
> | (email editor messed up indentation)
> | 
> | insertestimatesandtargets() is a ZSQLmethod. When the call to this 
> | method results in an error the script stops and not all data is 
> | inserted. Without an error all the data is inserted.
> | So how can I make this script skip over errors and continue? The reason 
> | is that there may already be some data in the database table that I want 
> | to preserve.
> 
> The try/except block should prevent the script from failing when calling
> the ZSQL method (assuming your indenting *is* correct in the python
> script [look for mixed tabs/spaces, since in the email some of your
> indents are 8 and some are 4]).
No all correct - Thunderbird not allowing me to edit the text.
> 
> Your other option is to do transaction sub-commits manually (there's
> plenty of google links for how to do this).
> 
> You probably can't do this directly from a python script, you'll have to
> setup an External Method to do it (or alter the security for the
> transaction machinery).
> 
Yes, thanks I thought that was the problem. I've already sorted it with 
external methods.
Garry


More information about the Zope mailing list