JSON serialization exception when creating PlannerTask
Sample Python code from this documentation page does not work if any of datetime-typed fields initialized. Exception with message Object of type DateTime is not JSON serializable is thrown.
Non-working code:
graph_client = GraphServiceClient(credentials, scopes)
request_body = PlannerTask(
plan_id = "xqQg5FS2LkCp935s-FIFm2QAFkHM",
bucket_id = "hsOf2dhOJkqyYYZEtdzDe2QAIUCR",
title = "Update client list",
assignments = PlannerAssignments(
additional_data = {
"fbab97d0-4932-4511-b675-204639209557" : {
"@odata_type" : "#microsoft.graph.plannerAssignment",
"order_hint" : " !",
},
}
),
due_date_time = datetime(2023, 12, 31)
)
result = await graph_client.planner.tasks.post(request_body)
After more thorough testing I figured that problem is not in due date or start date for task. Error Object of type DateTime is not JSON serializable is thrown appears when I set assignedDateTime for assignments
Hi @Spaider, Thanks for trying out the SDK. Are you able to confirm if this issue is present in v1.5.1 of the python SDK
@rkodev @fey101
unfortunately it still does not work but for a different reason.
When I run sample code, it fails to serialize assignments.additional_data with exception TypeError: Encountered an unknown type during serialization <class 'dict'> with key
Here's the full stack trace:
Traceback (most recent call last):
File "/Users/admin/Projects/GitLab/its-planner-migration/its_planner_migration/main.py", line 92, in <module>
asyncio.run(test())
File "/opt/homebrew/Cellar/[email protected]/3.11.8/Frameworks/Python.framework/Versions/3.11/lib/python3.11/asyncio/runners.py", line 190, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/[email protected]/3.11.8/Frameworks/Python.framework/Versions/3.11/lib/python3.11/asyncio/runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/[email protected]/3.11.8/Frameworks/Python.framework/Versions/3.11/lib/python3.11/asyncio/base_events.py", line 654, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "/Users/admin/Projects/GitLab/its-planner-migration/its_planner_migration/main.py", line 65, in test
await graph.create_task(PlannerTask(
File "/Users/admin/Projects/GitLab/its-planner-migration/its_planner_migration/graph.py", line 95, in create_task
result = await self.client.planner.tasks.post(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/admin/.virtualenvs/tobedeleted/lib/python3.11/site-packages/msgraph/generated/planner/tasks/tasks_request_builder.py", line 78, in post
request_info = self.to_post_request_information(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/admin/.virtualenvs/tobedeleted/lib/python3.11/site-packages/msgraph/generated/planner/tasks/tasks_request_builder.py", line 127, in to_post_request_information
request_info.set_content_from_parsable(self.request_adapter, "application/json", body)
File "/Users/admin/.virtualenvs/tobedeleted/lib/python3.11/site-packages/kiota_abstractions/request_information.py", line 179, in set_content_from_parsable
writer.write_object_value(None, values)
File "/Users/admin/.virtualenvs/tobedeleted/lib/python3.11/site-packages/kiota_serialization_json/json_serialization_writer.py", line 285, in write_object_value
self._serialize_value(temp_writer, value)
File "/Users/admin/.virtualenvs/tobedeleted/lib/python3.11/site-packages/kiota_serialization_json/json_serialization_writer.py", line 462, in _serialize_value
value.serialize(temp_writer)
File "/Users/admin/.virtualenvs/tobedeleted/lib/python3.11/site-packages/msgraph/generated/models/planner_task.py", line 155, in serialize
writer.write_object_value("assignments", self.assignments)
File "/Users/admin/.virtualenvs/tobedeleted/lib/python3.11/site-packages/kiota_serialization_json/json_serialization_writer.py", line 285, in write_object_value
self._serialize_value(temp_writer, value)
File "/Users/admin/.virtualenvs/tobedeleted/lib/python3.11/site-packages/kiota_serialization_json/json_serialization_writer.py", line 462, in _serialize_value
value.serialize(temp_writer)
File "/Users/admin/.virtualenvs/tobedeleted/lib/python3.11/site-packages/msgraph/generated/models/planner_assignments.py", line 47, in serialize
writer.write_additional_data_value(self.additional_data)
File "/Users/admin/.virtualenvs/tobedeleted/lib/python3.11/site-packages/kiota_serialization_json/json_serialization_writer.py", line 330, in write_additional_data_value
self.write_any_value(key, val)
File "/Users/admin/.virtualenvs/tobedeleted/lib/python3.11/site-packages/kiota_serialization_json/json_serialization_writer.py", line 451, in write_any_value
raise TypeError(
TypeError: Encountered an unknown type during serialization <class 'dict'> with key <key-redacted>
I was not able to pinpoint the actual version when this new exception starts to appear. What I've checked is:
- versions up to 1.0.0rc1 (pre-release) does not have this exception. They have different problems, including original exception from this topic
- versions from 1.0.0 start to throw
Encountered an unknown type during serialization <class 'dict'>exception
Thus, I am still not able to validate this bug.