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.