[Zope] python help needed
Andrew Milton
akm at theinternet.com.au
Tue Jan 19 14:59:21 EST 2010
+-------[ 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]).
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).
--
Andrew Milton
akm at theinternet.com.au
More information about the Zope
mailing list