[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