How to insert multiple rows in SQLite Dbase
Gabriel Genellina
gagsl-py2 at yahoo.com.ar
Fri Mar 28 19:09:34 EDT 2008
En Fri, 28 Mar 2008 18:05:29 -0300, afandi <afandimscit at gmail.com>
escribió:
> Generally, it involves SQL statement such as
> follow
>
> INSERT INTO <tablename>(field1,field2,.......fieldn) VALUES
> ('abc','def'...........)
>
> If I have data taken from Apache Server Log,let say 100 lines which
> is printed output of 8 fields such
> as:
>
> data 1
> IP: 61.5.65.101
> Date: 26/Sep/2007
> Time: 20:43:25
> GMT: +0900
> Requestt: GET /index.php?option=com_content&task=view&id=55&Itemid=19
> HTTP/1.1
> ErrorCode: 200
> Bytes: 6458
> Referel:http://www.joomla.org/index.php?
> option=com_content&task=view&id=35&Itemid=19
> Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.4)
> Gecko/20070515 Firefox/2.0.0.4
>How toI insert into SQLite database? by using SQL statement.TQ
sqlite3 allows for named parameters; see
http://docs.python.org/lib/sqlite3-Cursor-Objects.html
You should build a list of dictionaries, with a dictionary per log entry,
and call the executemany cursor method. Assuming you have a table created
like this:
create table log (
IP text,
EntryDate timestamp,
Requestt text,
ErrorCode integer )
you should build a list like this:
values = [
{'ip': '61.5.65.101',
'date': a datetime object combining all parts,
'request': "GET /index.php?op...",
'errorcode': 200,
},
{'ip': '21.5.65.101',
'date': a datetime object,
'request': "...",
'errorcode': 200,
},
...
]
and execute:
cur.executemany("insert into log (IP, EntryDate, Requestt, ErrorCode)
values (:ip, :date, :request, :errorcode)", values)
--
Gabriel Genellina
More information about the Python-list
mailing list