Thank you.
On 09/08/2022 15:56, Charlie Clark wrote:
On 9 Aug 2022, at 15:16, Gilles wrote:
Here's some working code. I recon using SQL's UNIQUE and ignoring
the error triggered when adding a duplicate is a bit kludgy, but
it works
For the task I don't see the need for any kind of keys, they'll just
slow things down.
Also, it will be faster using cursor.executemany() with a list of
rows. Not sure if you can combine this with a generator expression but
it would be great if you could, otherwise just materialise it when you
pass it in.
|import sqlite3 db = sqlite3.connect('wp.sqlite') cursor = db.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS wp(name TEXT, latitude
TEXT, longitude TEXT)') db.commit() def get_rows(tree): for row in
tree.iter("wpt"): yield [row.find("name").text] + row.attrib.values()
rows = get_rows() # initialise generator cursor.execute('BEGIN')
cursor.executemany('INSERT INTO wp (name,latitude,longitude)
VALUES(?,?,?)', rows) cursor.execute("COMMIT") cursor.execute("SELECT
name, latitude, longitude from wp group by latitude, longitude")
cursor.fetchall() Charlie -- Charlie Clark Managing Director Clark
Consulting & Research German Office Sengelsweg 34 Düsseldorf D- 40489
Tel: +49-203-3925-0390 Mobile: +49-178-782-6226 |
_______________________________________________
lxml - The Python XML Toolkit mailing list -- lxml@python.org
To unsubscribe send an email to lxml-le...@python.org
https://mail.python.org/mailman3/lists/lxml.python.org/
Member address: arch...@mail-archive.com