Parsing log in SQL DB to change IPs to hostnames

Steve Holden steve at holdenweb.com
Wed Apr 11 13:12:18 EDT 2007


KDawg44 wrote:
> On Apr 11, 11:58 am, Dennis Lee Bieber <wlfr... at ix.netcom.com> wrote:
>> On 11 Apr 2007 05:39:21 -0700, "KDawg44" <KDaw... at gmail.com> declaimed
>> the following in comp.lang.python:
>>
>>> ohhh okay.  thanks so much.  I knew that it came out as strings, i
>>> guess it makes sense that I would have to send it back IN as a
>>> string.  Changed that and now it works!  THanks so much.
>>         I'd be interested in the schema definition -- my experience has been
>> that numeric fields come out of MySQLdb as numerics...
>>
>>>>> import MySQLdb
>>>>> cn = MySQLdb.connect(host="localhost", user="BestiariaCP", db="bestiaria")
>>>>> cr = cn.cursor()
>>>>> cr.execute("select * from comics where banner is not Null")
>> 35L
>>>>> cr.fetchone()
>> (2L, 'Anxiety Cafe', 'Anxiety Cafe',
>> 'http://rockerbot.artistrealm.org/', 'images/ronandrockerbutton.jpg',
>> 234L, 60L, 'Platitudes from a platypus.', 'On hiatus - site rebuild',
>> 'N', 'Y')
>>
>>
>>
>>         Note the first field there -- a Python long integer (the schema
>> defines that as an integer auto_increment field). Also the "234L, 60L,"
>> (image width/height) -- all returned as numeric.
>>
>>         If your data is coming out as a string, I'd suspect the schema
>> defined it as a character type.
>>
>>>>> cr.description
>> (('ID', 3, 2, 11, 11, 0, 0), ('name', 253, 33, 100, 100, 0, 0),
>> ('sortname', 253, 33, 100, 100, 0, 0), ('URL', 253, 56, 75, 75, 0, 0),
>> ('banner', 253, 29, 75, 75, 0, 1), ('width', 3, 3, 11, 11, 0, 1),
>> ('height', 3, 3, 11, 11, 0, 1), ('description', 252, 170, 65535, 65535,
>> 0, 0), ('occurs', 253, 58, 125, 125, 0, 1), ('isactive', 254, 1, 1, 1,
>> 0, 0), ('isonline', 254, 1, 1, 1, 0, 0))
>>
>>
>>
>> CREATE TABLE `comics` (
>>   `ID` int(11) NOT NULL auto_increment,
>>   `name` varchar(100) NOT NULL default '',
>>   `sortname` varchar(100) NOT NULL default '',
>>   `URL` varchar(75) NOT NULL default '',
>>   `banner` varchar(75) default NULL,
>>   `width` int(11) default NULL,
>>   `height` int(11) default NULL,
>>   `description` text NOT NULL,
>>   `occurs` varchar(125) default NULL,
>>   `isactive` enum('N','Y') NOT NULL default 'Y',
>>   `isonline` enum('N','Y') NOT NULL default 'Y',
>>   PRIMARY KEY  (`ID`),
>>   KEY `namesort` (`sortname`)
>> ) ENGINE=MyISAM AUTO_INCREMENT=92 DEFAULT CHARSET=latin1;
>> --
>>         Wulfraed        Dennis Lee Bieber               KD6MOG
>>         wlfr... at ix.netcom.com             wulfr... at bestiaria.com
>>                 HTTP://wlfraed.home.netcom.com/
>>         (Bestiaria Support Staff:               web-a... at bestiaria.com)
>>                 HTTP://www.bestiaria.com/
> 
> I see your point.  Somewhere in my head I must have mixed them up.  It
> goes in as a string but comes out as whatever data type.
> 
> Thanks.
> 
No, it doesn't even go *in* as a string (though a lot of database 
modules will convert data of the wrong type if they reasonably can).

"%s" is just what's known as a "parameter marker" - each parameter 
marker is substituted by suceeding values form the data tuple provided 
as the second argument to cursor.execute().

Some database modules use "?" as a parameter marker.

regards
  Steve
-- 
Steve Holden       +44 150 684 7255  +1 800 494 3119
Holden Web LLC/Ltd          http://www.holdenweb.com
Skype: holdenweb     http://del.icio.us/steve.holden
Recent Ramblings       http://holdenweb.blogspot.com




More information about the Python-list mailing list