Can you try instead

import StringIO
db.yourtable.import_from_csv_file(StringIO.StringIO(your_csv_string))

and see what happens? Booleans should be T/F not 1/0.

Massimo

On Nov 23, 8:23 am, "Daniel Contag" <[EMAIL PROTECTED]> wrote:
> Hi everyone, some progress has been made... :)
>
> Adding this to gql.py I am able to import tables that contain strings.
> However I receive a type error when importing a table that has a
> column of type boolean.
>
> The code: contrib/gql.py
>
> class SQLTable(SQLStorage):
> [..]
>
> def import_from_csv_string(self, csv_string):
>         """
>         # changed by dc.
>         import records from csv STRING. Column headers must have same names as
>         table fields. (field 'id' is ignored.) If column names read 
> 'table.file'
>         the 'table.' prefix is ignored.
>         """
>         # reader needs an iterable that returns a line each time
>         csv_list = []
>         for l in csv_string.split('\n'):
>             csv_list.append(l)
>
>         reader = csv.reader(csv_list)
>         colnames=None
>         for line in reader:
>             if not colnames:
>                 colnames=[x[x.find('.')+1:] for x in line]
>                 # c=[i for i in xrange(len(line)) if colnames[i]!='id']
>                 c=[i for i in xrange(len(line))]
>             else:
>                 items=[(colnames[i],line[i]) for i in c]
>                 self.insert(**dict(items))
>
> The error:
>
> ERROR    2008-11-23 14:11:57,150 main.py] Traceback (most recent call last):
>   File "/path/gluon/restricted.py", line 62, in restricted
>     exec ccode in environment
>   File "/path/applications/my_app/models/db.py", line 52, in <module>
>     db.is_free.import_from_csv_string(result.content)
>   File "/path/gluon/contrib/gql.py", line 218, in import_from_csv_string
>     self.insert(**dict(items))
>   File "/path/gluon/contrib/gql.py", line 190, in insert
>     tmp=self._tableobj(**fields)
>   File 
> "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/db/__init__.py",
> line 587, in __init__
>     prop.__set__(self, value)
>   File 
> "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/db/__init__.py",
> line 387, in __set__
>     value = self.validate(value)
>   File 
> "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/db/__init__.py",
> line 2132, in validate
>     raise BadValueError('Property %s must be a bool' % self.name)
> BadValueError: Property free must be a bool
>
> Daniel
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py Web Framework" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to