-
-
Notifications
You must be signed in to change notification settings - Fork 166
Open
Description
I have a simple ods file. This works fine:
❯ pyexcel view pyexcel-timedelta.ods
Sheet1:
+-----------+
| Timedelta |
+-----------+
| 23:00:00 |
+-----------+%
When changing 23:00:00 to anything above 24:00:00 this happens:
❯ pyexcel view pyexcel-timedelta.ods
Traceback (most recent call last):
File "/opt/venv3/bin/pyexcel", line 8, in <module>
sys.exit(main())
^^^^^^
File "/opt/venv3/lib/python3.11/site-packages/click/core.py", line 1157, in __call__
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/venv3/lib/python3.11/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "/opt/venv3/lib/python3.11/site-packages/click/core.py", line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/venv3/lib/python3.11/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/venv3/lib/python3.11/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/venv3/lib/python3.11/site-packages/click/decorators.py", line 33, in new_func
return f(get_current_context(), *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/venv3/lib/python3.11/site-packages/pyexcel_cli/view.py", line 63, in view
ctx.invoke(transcode, output=output, **keywords)
File "/opt/venv3/lib/python3.11/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/venv3/lib/python3.11/site-packages/pyexcel_cli/transcode.py", line 117, in transcode
pe.save_book_as(**params)
File "/opt/venv3/lib/python3.11/site-packages/pyexcel/core.py", line 112, in save_book_as
return sources.save_book(book, **dest_keywords)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/venv3/lib/python3.11/site-packages/pyexcel/internal/core.py", line 55, in save_book
return _save_any(a_source, book)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/venv3/lib/python3.11/site-packages/pyexcel/internal/core.py", line 59, in _save_any
a_source.write_data(instance)
File "/opt/venv3/lib/python3.11/site-packages/pyexcel/plugins/sources/output_to_memory.py", line 49, in write_data
self._renderer.render_book_to_stream(
File "/opt/venv3/lib/python3.11/site-packages/pyexcel/renderer.py", line 109, in render_book_to_stream
self.render_book(book, **keywords)
File "/opt/venv3/lib/python3.11/site-packages/pyexcel/renderer.py", line 130, in render_book
self.render_sheet(sheet)
File "/opt/venv3/lib/python3.11/site-packages/pyexcel/plugins/renderers/_texttable.py", line 23, in render_sheet
content = render_text_table(sheet, self._write_title)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/venv3/lib/python3.11/site-packages/pyexcel/plugins/renderers/_texttable.py", line 46, in render_text_table
table.add_row(list(new_array))
^^^^^^^^^^^^^^^
File "/opt/venv3/lib/python3.11/site-packages/pyexcel/plugins/renderers/_texttable.py", line 56, in _cleanse_a_row
yield to_format(str, item)
^^^^^^^^^^^^^^^^^^^^
File "/opt/venv3/lib/python3.11/site-packages/pyexcel/internal/sheets/formatters.py", line 130, in to_format
return func(value, to_type)
^^^^^^^^^^^^^^^^^^^^
File "/opt/venv3/lib/python3.11/site-packages/pyexcel/internal/sheets/formatters.py", line 112, in default_formatter
return json.dumps(value)
^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/json/__init__.py", line 231, in dumps
return _default_encoder.encode(obj)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/json/encoder.py", line 200, in encode
chunks = self.iterencode(o, _one_shot=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/json/encoder.py", line 258, in iterencode
return _iterencode(o, 0)
^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/json/encoder.py", line 180, in default
raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type timedelta is not JSON serializable
I believe this is a bug.
Maybe this link is helpful: https://www.geeksforgeeks.org/how-to-fix-datetime-datetime-not-json-serializable-in-python/
My system looks like this:
❯ pip list | grep pyexcel
pyexcel 0.7.0
pyexcel-cli 0.0.3
pyexcel-io 0.6.6
pyexcel-ods 0.6.0
pyexcel-xlsx 0.6.0
❯ python --version
Python 3.11.2
❯ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 12 (bookworm)
Release: 12
Codename: bookworm
Thank you for this wonderful project. Please let me know if I can help somehow!
Metadata
Metadata
Assignees
Labels
No labels