Can you please open a pydal ticket? I can fix this over the week-end.
On Monday, 14 October 2019 01:54:41 UTC-7, Mamisoa Andriantafika wrote:
>
> It seems to be related with the "blob" type where python 2 accept also
> string type while python 3 expect byte type.
>
> When I delete the row which contains the blob with string inside,
> exporting function works.
>
> Le dimanche 13 octobre 2019 19:05:58 UTC+2, Mamisoa Andriantafika a écrit :
>>
>> Hi,
>>
>> I can't seem to export the db using db.import_from_csv_file in python3.
>> It is working in python 2.
>>
>> It seems to be a problem with one of the image or blob field in a table ?
>> Actually there is only on blob field populated with a b64 image file, but
>> yet no image file in upload field.
>>
>> db.define_table('photo_id',
>> Field('imagefile', 'upload'),
>> Field('b64img','blob'),
>> Field('id_auth_user', 'reference auth_user', writable = False,
>> readable = False),
>> auth.signature)
>>
>> Billet d'erreur for "ECapp19" Identifiant du Billet
>>
>> 127.0.0.1.2019-10-13.18-48-04.b589bcc3-5676-49ce-a64e-a9b005d108b1
>> <class 'TypeError'> a bytes-like object is required, not 'str' Version
>> web2py™ Version 2.18.5-stable+timestamp.2019.04.08.04.22.03
>> Python Python 3.6.8: /usr/bin/python3 (prefix: /usr) Traceback
>>
>> 1.
>> 2.
>> 3.
>> 4.
>> 5.
>> 6.
>> 7.
>> 8.
>> 9.
>> 10.
>> 11.
>> 12.
>> 13.
>> 14.
>> 15.
>> 16.
>>
>> Traceback (most recent call last):
>> File "/home/www-data/web2py/gluon/restricted.py", line 219, in restricted
>> exec(ccode, environment)
>> File "/home/www-data/web2py/applications/ECapp19/controllers/manage.py"
>> <https://localhost/admin/default/edit/ECapp19/controllers/manage.py>, line
>> 135, in <module>
>> File "/home/www-data/web2py/gluon/globals.py", line 421, in <lambda>
>> self._caller = lambda f: f()
>> File "/home/www-data/web2py/applications/ECapp19/controllers/manage.py"
>> <https://localhost/admin/default/edit/ECapp19/controllers/manage.py>, line
>> 47, in save_db
>> db.export_to_csv_file(dumpfile)
>> File "/home/www-data/web2py/gluon/packages/dal/pydal/base.py", line 852,
>> in export_to_csv_file
>> ofile, *args, **kwargs)
>> File "/home/www-data/web2py/gluon/packages/dal/pydal/objects.py", line
>> 2811, in export_to_csv_file
>> value = base64.b64encode(value)
>> File "/usr/lib/python3.6/base64.py", line 58, in b64encode
>> encoded = binascii.b2a_base64(s, newline=False)
>> TypeError: a bytes-like object is required, not 'str'
>>
>> Error snapshot [image: help]
>> <https://localhost/admin/default/ticket/ECapp19/127.0.0.1.2019-10-13.18-48-04.b589bcc3-5676-49ce-a64e-a9b005d108b1#>
>>
>>
>> TypeError(a bytes-like object is required, not 'str')
>>
>> inspect attributes
>> Frames
>>
>> -
>>
>> *File /home/www-data/web2py/gluon/restricted.py in restricted at line
>> 219* code arguments variables
>> -
>>
>> *File
>> /home/www-data/web2py/applications/ECapp19/controllers/manage.py in
>> <module> at line 135* code arguments variables
>> -
>>
>> *File /home/www-data/web2py/gluon/globals.py in <lambda> at line 421*
>> code arguments variables
>> -
>>
>> *File
>> /home/www-data/web2py/applications/ECapp19/controllers/manage.py in
>> save_db
>> at line 47* code arguments variables
>> -
>>
>> *File /home/www-data/web2py/gluon/packages/dal/pydal/base.py in
>> export_to_csv_file at line 852* code arguments variables
>> -
>>
>> *File /home/www-data/web2py/gluon/packages/dal/pydal/objects.py in
>> export_to_csv_file at line 2811* code arguments variables
>> -
>>
>> *File /usr/lib/python3.6/base64.py in b64encode at line 58* code
>> arguments variables
>> Function argument list
>>
>>
>> (s='data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEBLAEsA...xIWdmOeSSeTn/AOvSJnOM8j9KcWyMjgU5DgHuakVjjgV//9k=',
>>
>> altchars=None)
>> Code listing
>>
>> 53.
>> 54.
>> 55.
>> 56.
>> 57.
>> 58.
>> 59.
>> 60.
>> 61.
>> 62.
>>
>>
>> Optional altchars should be a byte string of length 2 which specifies
>> an
>> alternative alphabet for the '+' and '/' characters. This allows an
>> application to e.g. generate url or filesystem safe Base64 strings.
>> """
>> encoded = binascii.b2a_base64(s, newline=False)
>> if altchars is not None:
>> assert len(altchars) == 2, repr(altchars)
>> return encoded.translate(bytes.maketrans(b'+/', altchars))
>> return encoded
>>
>> Variables
>> encoded undefined
>> global binascii <module 'binascii' (built-in)>
>> binascii.b2a_base64 <built-in function b2a_base64>
>> s
>>
>> 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEBLAEsA...xIWdmOeSSeTn/AOvSJnOM8j9KcWyMjgU5DgHuakVjjgV//9k='
>>
>> newline undefined
>>
>>
>> Any ideas?
>>
>> Mamisoa
>>
>>
>>
>>
--
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/web2py/00bb3e3e-5ac3-4b57-99d2-6af42c4d12d1%40googlegroups.com.