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