Something like this? import csv reader = csv.reader(csvfile) header = None paints = {} colorants = {} for line in reader: if not header: header = line else: row = dict([header[i],item) for i,item in enumerate(line)]) name = row['Color Name'] colorant = row['Colorant'] if not name in paints: paints[name]=db.paint.insert(name=name) if not colorant in colorants: colorants[colorant]=db.colorant.insert(name=colorant) db.paint_colorants.insert(paint_id=paints [name],colorant_id=colorants[colorant])
On Jan 8, 4:10 am, Jason Brower <encomp...@gmail.com> wrote: > I have data like this in a csv file.... > "Color Name", Base, Colorant, Amount, Colorant, Amount, Colorant, > Amount, Colorant, Amount, Colorant, Amount > "10 PORDRR",G,fo1,76,da1,32,ro1,111,yi1,1,, > It is for a paint database. > Is it at all possible to import that into this model? > Normally I would just take a few minutes and do it by hand. But I have > 14,000+ entries, so that's out of the question. Any ideas? In > particular, how do you handle the variance in how many kinds of > colorants are added. Notice in this example that is only 4 colorants, > and 5+ could be in the page. (Currently from this extraction, only 5 > colorants and their amounts. > > db = SQLDB('sqlite://paint.sqlite') > > db.define_table('paint', > Field('name', length=30, requires=IS_NOT_EMPTY(), unique=True), > Field('base_coat', length=3, requires=IS_NOT_EMPTY()), > Field('hex_color', length=6)) > > db.define_table('colorant', > Field('name', length=3, requires=IS_NOT_EMPTY())) > > db.define_table('paint_colorants', > Field('paint_id', db.paint), > Field('colorant_id', db.colorant), > Field('units', 'integer')) > > db.paint_colorants.paint_id.requires=IS_IN_DB(db, 'paint.id', > '%(name)s') > db.paint_colorants.colorant_id.requires=IS_IN_DB(db, 'paint.id', > '%(name)s') > > Best Regards, > Jason Brower
-- You received this message because you are subscribed to the Google Groups "web2py-users" group. To post to this group, send email to web...@googlegroups.com. To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/web2py?hl=en.