Unable to insert datetime object
- Dominant language
- Python
- Stars
- 7.5k
- Forks
- 979
- PR merge metrics
- No merged PRs in 30d
Description
**Environment info**
Operating System: Windows 10
Python version: 2.7.12
gspread version: 2.0.0
**Steps to reproduce**
1. worksheet.insert_row([datetime.datetime.now()])
Traceback:
```
Traceback (most recent call last):
File "D:/gspreadinserttest.py", line 21, in
sh.insert_row([datetime.datetime.now()])
File "C:\Python27\lib\site-packages\gspread\v4\models.py", line 685, in insert_row
'values': [values]
File "C:\Python27\lib\site-packages\gspread\v4\models.py", line 112, in values_update
r = self.client.request('put', url, params=params, json=body)
File "C:\Python27\lib\site-packages\gspread\v4\client.py", line 67, in request
endpoint, json=json, params=params, data=data, files=files
File "C:\Python27\lib\site-packages\requests\sessions.py", line 566, in put
return self.request('PUT', url, data=data, **kwargs)
File "C:\Python27\lib\site-packages\requests\sessions.py", line 494, in request
prep = self.prepare_request(req)
File "C:\Python27\lib\site-packages\requests\sessions.py", line 437, in prepare_request
hooks=merge_hooks(request.hooks, self.hooks),
File "C:\Python27\lib\site-packages\requests\models.py", line 308, in prepare
self.prepare_body(data, files, json)
File "C:\Python27\lib\site-packages\requests\models.py", line 458, in prepare_body
body = complexjson.dumps(json)
File "C:\Python27\lib\json\__init__.py", line 231, in dumps
return _default_encoder.encode(obj)
File "C:\Python27\lib\json\encoder.py", line 201, in encode
chunks = self.iterencode(o, _one_shot=True)
File "C:\Python27\lib\json\encoder.py", line 264, in iterencode
return _iterencode(o, 0)
File "C:\Python27\lib\json\encoder.py", line 178, in default
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: datetime.datetime(2018, 3, 11, 13, 26, 34, 292000) is not JSON serializable
```
I know it is possible to convert to a string before inserting however in previous gspread versions I could insert a datetime object and it would format the datetime using the formatting from the google sheet. Is there anyway this kind of functionality could be replicated in 2.0.0?
Contributor guide
Assessment
This issue has not been assessed yet.