ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> python-list
python-list
Help with optimisation
by Special_dragonfly other posts by this author
Aug 13 2007 9:59AM messages near this date
Re: Dictionary viewer and editor | Re: Help with optimisation
Hello,
I know this might be a little cheeky, and if it is, please say, but I need a 
little hand optimising some code. For the simple reason that this is 
'company' code and I have no idea what I'm allowed to release and not as the 
case may be I've changed anything that could give an indication of the 
company - if that makes any sense...

for the code below:
text_buffer is a single record from an XML stream. I can't read in the 
entire XML at once because it isn't all available straight away, so I 
capture line by line, and when a full message is available I use parseString 
under the minidom API.
The SQL version is SQLite. It was recommended to me, and is adequate for the 
uses I put it to.
The function doesn't return anything, but it's called often enough and 
depending on the optimisation I'll be able to use the same style in other 
areas of the program.

previous code:
def CreatePerson(text_buffer):
    dom=xml.dom.minidom.parseString(text_buffer)
    reflist = dom.getElementsByTagName('Country')
    Country = reflist[0].firstChild.nodeValue
    reflist = dom.getElementsByTagName('Age')
    Age = reflist[0].firstChild.nodeValue
    reflist = dom.getElementsByTagName('Surname')
    Surname = reflist[0].firstChild.nodeValue
    reflist = dom.getElementsByTagName('Forename')
    Forename = reflist[0].firstChild.nodeValue
    cursor.execute('INSERT INTO Person VALUES(?,?,?)', (Forename + "-" + 
Surname, Age, Country))
    connection.commit()

I've changed it now to this:
def CreatePerson(text_buffer):
    dom=xml.dom.minidom.parseString(text_buffer)
    elements=['Country','Age','Surname','Forename']
    Values=[]
    for element in elements:
        reflist=dom.getElementsByTagName(element)
        Values.append(reflist[0].firstChild.nodeValue)
        # I can get away with the above because I know the structure of the 
XML
    cursor.execute('INSERT INTO Person 
VALUES(?,?,?)',(Forename+"-"+Surname,Age,Country))
    connection.commit()

They both seem ugly IMO (read: longer than intuitively necessary), and so I 
was wondering whether there was any way to combine Forename and Surname 
together within the Values list (think merge cells with the '-' in between) 
so I could use the unary(?) operator within the SQL?

I suppose if this is a cheeky request then I won't get any replies.
Thank you for any help
Dominic



-- 
http://mail.python.org/mailman/listinfo/python-list
Thread:
Special_dragonfly
Bruno Desthuilliers
Alex Martelli

Privacy Policy | Email Opt-out | Feedback | Syndication
© 2004 ActiveState, a division of Sophos All rights reserved