Hi What is the best way to inplace alter a list going into a postgres database using split but being sure that the order of items remains correct.
I am using this list of ids to retrieve data from XML horseattrs = ('id', 'race_id', 'horse', 'number', 'finished', 'age', 'sex', 'blinkers', 'trainernumber', 'career', 'thistrack', 'firstup', 'secondup', 'variedweight', 'weight', 'pricestarting') one example output looks like this. ['188745', '215639', 'Beau Tirage', '2', '0', '4', 'G', '0', '211', '11-3-1-4 $72390.00', '2-0-0-2 $8970.00', '3-2-0-0 $30085.00', '3-1-0-0 $15450.00', '59', '59', ''] so if I need to manage to split say a[10] if I call the list a and break that into 4 columns. Maybe like this. In [1]: a = ['188745', '215639', 'Beau Tirage', '2', '0', '4', 'G', '0', '211', '11-3-1-4 $72390.00', '2-0-0-2 $8970.00', '3-2-0-0 $30085.00', '3-1-0-0 $15450.00', '59', '59', ''] In [2]: print(a) ['188745', '215639', 'Beau Tirage', '2', '0', '4', 'G', '0', '211', '11-3-1-4 $72390.00', '2-0-0-2 $8970.00', '3-2-0-0 $30085.00', '3-1-0-0 $15450.00', '59', '59', ''] In [3]: print(a[10]) 2-0-0-2 $8970.00 In [6]: b = print(a[10].replace('-',' ')) 2 0 0 2 $8970.00 In [9]: print(b.split(' ',)) ['2', '0', '0', '2', '$8970.00'] Currently using this as the insert conn = psycopg2.connect("") with conn, conn.cursor() as cur: # First, create tables. cur.execute("drop table if exists meetings, races, horses") cur.execute("create table meetings (" + ", ".join("%s varchar" % fld for fld in meetattrs) + ")") cur.execute("create table races (" + ", ".join("%s varchar" % fld for fld in raceattrs) + ")") cur.execute("create table horses (" + ", ".join("%s varchar" % fld for fld in horseattrs) + ")") # Now walk the tree and insert data. for filename in sorted(file_list): for meeting in pq(filename=my_dir + filename): meetdata = [meeting.get(attr) for attr in meetattrs] cur.execute("insert into meetings values (" + ",".join(["%s"] * len(meetattrs)) + ")", meetdata) for race in meeting.findall("race"): race.set("meeting_id", meeting.get("id")) racedata = [race.get(attr) for attr in raceattrs] cur.execute("insert into races values (" + ",".join(["%s"] * len(raceattrs)) + ")", racedata) for horse in race.findall("nomination"): horse.set("race_id", race.get("id")) horsedata = [horse.get(attr) for attr in horseattrs] print(horsedata) cur.execute("insert into horses values (" + ",".join(["%s"] * len(horseattrs)) + ")", horsedata) What is the best way to manage this. Sayth -- https://mail.python.org/mailman/listinfo/python-list