@Lovedie
Can you explain a little bit more? What you mean by can't access the data?

If you getting the error to import data from CSV. You can try this as well.

 form = FORM(DIV(LABEL('File
input',_for='exampleInputFile'),INPUT(_type='file',_name='csvsheet',_id="exampleInputFile"),_class='from-group'),BUTTON('Submit',_type='submit',_class="btn
btn-primary"))
    if form.process().accepted:
        try:
            for i in
csv.DictReader(codecs.iterdecode(request.vars.csvsheet.file,'utf-8')):
                db['table name'].insert(**i)
        except Exception as e:
            print(e)
            form.errors.csvfile = 'Invalid file format.'

Thanks
SP

On Mon, Feb 11, 2019 at 11:45 PM Lovedie JC <lbjc1...@gmail.com> wrote:

> Works.
> But I can't access the data.
>
> On Mon, 11 Feb 2019, 21:02 sandeep patel <patelsandeep...@gmail.com wrote:
>
>> In fact, this is an open issue
>> <https://github.com/web2py/web2py/issues/2015> for the same problem. You
>> can check that as well
>>
>> On Mon, Feb 11, 2019 at 11:27 PM sandeep patel <patelsandeep...@gmail.com>
>> wrote:
>>
>>> I had the same issue. I have solved this way.
>>> Please try this
>>> You have to changing line 926 of gluon/packages/dal/pydal/objects.py from
>>> reader = csv.reader(csvfile, delimiter=delimiter,
>>> quotechar=quotechar, quoting=quoting)
>>> to
>>> reader = csv.reader(codecs.iterdecode(csvfile,'utf-8'),
>>> delimiter=delimiter,
>>> quotechar=quotechar, quoting=quoting)
>>>
>>> After changes done, you have to execute the  web2py.py
>>>
>>> Thanks
>>> SP
>>>
>>> On Mon, Feb 11, 2019 at 11:04 PM Maurice Waka <mauricew...@gmail.com>
>>> wrote:
>>>
>>>> I shifted to web2py/python3. In python2.7 I was able to upload csv
>>>> files but using the same code below I get an error.
>>>> For example:
>>>> def import_csv():
>>>>     form = FORM(INPUT(_type = 'file', _name = 'csv_file'),
>>>>              INPUT(_type = 'submit', _value = T('Import')))
>>>>     return dict(form=form)
>>>> @mobilize
>>>> @auth.requires_login()
>>>> def index1():
>>>>     if request.vars.csvfile != None:
>>>>         # set values
>>>>         table = db[request.vars.table]
>>>>         file = request.vars.csvfile.file
>>>>         # import csv file
>>>>         table.import_from_csv_file(file)
>>>>         # update who imported
>>>>         query = db.food_data.protein==""
>>>>         db(query).update(protein="")
>>>>         response.flash = 'Data uploaded'
>>>>     return dict()
>>>>
>>>> The error is this
>>>>
>>>> 1.
>>>> 2.
>>>> 3.
>>>> 4.
>>>> 5.
>>>> 6.
>>>> 7.
>>>> 8.
>>>> 9.
>>>> 10.
>>>> 11.
>>>> 12.
>>>> 13.
>>>> 14.
>>>> 15.
>>>> 16.
>>>>
>>>> Traceback (most recent call last):
>>>>   File "/home/mauricewaka/web2py/gluon/restricted.py", line 219, in 
>>>> restricted
>>>>     exec(ccode, environment)
>>>>   File 
>>>> "/home/mauricewaka/web2py/applications/Hestque_Wellness/controllers/default.py"
>>>>  
>>>> <http://127.0.0.1:8000/admin/default/edit/Hestque_Wellness/controllers/default.py>,
>>>>  line 479, in <module>
>>>>   File "/home/mauricewaka/web2py/gluon/globals.py", line 421, in <lambda>
>>>>     self._caller = lambda f: f()
>>>>   File "/home/mauricewaka/web2py/gluon/contrib/user_agent_parser.py", line 
>>>> 695, in __call__
>>>>     return self.func()
>>>>   File "/home/mauricewaka/web2py/gluon/tools.py", line 3867, in f
>>>>     return action(*a, **b)
>>>>   File 
>>>> "/home/mauricewaka/web2py/applications/Hestque_Wellness/controllers/default.py"
>>>>  
>>>> <http://127.0.0.1:8000/admin/default/edit/Hestque_Wellness/controllers/default.py>,
>>>>  line 329, in index1
>>>>     table.import_from_csv_file(file)
>>>>   File "/home/mauricewaka/web2py/gluon/packages/dal/pydal/objects.py", 
>>>> line 980, in import_from_csv_file
>>>>     for lineno, line in enumerate(reader):
>>>> _csv.Error: iterator should return strings, not bytes (did you open the 
>>>> file in text mode?)
>>>>
>>>> How can I solve this
>>>>
>>>> --
>>>> Resources:
>>>> - http://web2py.com
>>>> - http://web2py.com/book (Documentation)
>>>> - http://github.com/web2py/web2py (Source code)
>>>> - https://code.google.com/p/web2py/issues/list (Report Issues)
>>>> ---
>>>> You received this message because you are subscribed to the Google
>>>> Groups "web2py-users" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to web2py+unsubscr...@googlegroups.com.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>> --
>> Resources:
>> - http://web2py.com
>> - http://web2py.com/book (Documentation)
>> - http://github.com/web2py/web2py (Source code)
>> - https://code.google.com/p/web2py/issues/list (Report Issues)
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "web2py-users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to web2py+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
> --
> Resources:
> - http://web2py.com
> - http://web2py.com/book (Documentation)
> - http://github.com/web2py/web2py (Source code)
> - https://code.google.com/p/web2py/issues/list (Report Issues)
> ---
> You received this message because you are subscribed to the Google Groups
> "web2py-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to web2py+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to