Done.
https://github.com/web2py/pydal/issues/598#issue-508723402
Le mercredi 16 octobre 2019 08:45:09 UTC+2, Massimo Di Pierro a écrit :
>
> 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/f0b4ccc3-7bc1-4923-8925-2bc084e97ec2%40googlegroups.com.