Registry / serialization / microsoft-kiota-serialization-form

microsoft-kiota-serialization-form

JSON →
library1.12.0pypypi✓ verified 25d ago

microsoft-kiota-serialization-form is part of the Microsoft Kiota ecosystem, providing a serialization and deserialization factory for `application/x-www-form-urlencoded` content types in Python. It's used by Kiota-generated API clients and custom applications to handle form data. It is currently at version 1.10.1 and follows Kiota's frequent release cadence.

pip install microsoft-kiota-serialization-form
INSTALL
IMPORT
SIG · MICROSOFT-KIOTA-SE
M
microsoft-kiota-serialization-form
serializationpythonv1.12.0
Install
2.3s avg
Import
Disk
21MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v1.12.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.95 runs
installs and imports cleanly · install 0.0s · import 0.000s · 22.6MB
glibc
py 3.103.95 runs
installs and imports cleanly · install 2.3s · import 0.000s · 23MB
21MB installed
● package 21MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

FormSerializationWriterFactory
from kiota_serialization_form import FormSerializationWriterFactory
from kiota_serialization_form import FormSerializationWriterFactory

This example demonstrates how to serialize a Python object into `application/x-www-form-urlencoded` format and then deserialize it back, using `FormSerializationWriterFactory` and `FormParseNodeFactory`. It requires defining a data model that implements Kiota's `Parsable` interface.

from typing import Callable, Dict, Optional from microsoft_kiota_abstractions.serialization import AdditionalDataHolder, Parsable, ParseNode, SerializationWriter from microsoft_kiota_serialization_form import FormParseNodeFactory, FormSerializationWriterFactory # 1. Define a simple model that implements Kiota's Parsable and AdditionalDataHolder class MyFormModel(Parsable, AdditionalDataHolder): def __init__(self) -> None: self._my_string: Optional[str] = None self._my_int: Optional[int] = None self._additional_data: Dict[str, object] = {} @property def my_string(self) -> Optional[str]: return self._my_string @my_string.setter def my_string(self, value: Optional[str]) -> None: self._my_string = value @property def my_int(self) -> Optional[int]: return self._my_int @my_int.setter def my_int(self, value: Optional[int]) -> None: self._my_int = value @property def additional_data(self) -> Dict[str, object]: return self._additional_data @additional_data.setter def additional_data(self, value: Dict[str, object]) -> None: self._additional_data = value def get_field_deserializers(self) -> Dict[str, Callable[[ParseNode], None]]: return { "myString": lambda n: setattr(self, 'my_string', n.get_str_value()), "myInt": lambda n: setattr(self, 'my_int', n.get_int_value()) } def serialize(self, writer: SerializationWriter) -> None: writer.write_str_value("myString", self.my_string) writer.write_int_value("myInt", self.my_int) writer.write_additional_data_value(self.additional_data) # 2. Instantiate and populate the model model_to_serialize = MyFormModel() model_to_serialize.my_string = "Kiota Form Test" model_to_serialize.my_int = 42 model_to_serialize.additional_data["version"] = "1.0" # 3. Use FormSerializationWriterFactory to serialize the model writer_factory = FormSerializationWriterFactory() writer = writer_factory.get_serialization_writer("application/x-www-form-urlencoded") writer.write_object_value(None, model_to_serialize) serialized_content = writer.get_serialized_content() print(f"Serialized Form Data: {serialized_content.decode('utf-8')}") # 4. Use FormParseNodeFactory to deserialize the content back into a model parser_factory = FormParseNodeFactory() parse_node = parser_factory.get_parse_node("application/x-www-form-urlencoded", serialized_content) deserialized_model = parse_node.get_object_value(MyFormModel) print(f"Deserialized my_string: {deserialized_model.my_string}") print(f"Deserialized my_int: {deserialized_model.my_int}") print(f"Deserialized additional_data: {deserialized_model.additional_data}")
Debug
Known issues
breakingSupport for Python 3.9 was dropped in version 1.10.0 across all Kiota Python libraries.
fix
Upgrade your Python environment to 3.10 or newer (up to <4.0).
affects: >=1.10.0
gotchaThis library only handles `application/x-www-form-urlencoded` content types. For other formats like JSON or plain text, you need to install and use their respective Kiota serialization packages (e.g., `microsoft-kiota-serialization-json`).
fix
Ensure the `Content-Type` header matches `application/x-www-form-urlencoded` when using this factory. For other formats, install the relevant `microsoft-kiota-serialization-*` package.
affects: All
gotchaKiota's serialization/deserialization relies on models implementing the `Parsable` interface, which can be verbose for simple data structures. You must define `get_field_deserializers` and `serialize` methods.
fix
Carefully define your data models to adhere to the `Parsable` interface, including mapping fields to their deserializer functions and implementing the `serialize` method.
affects: All
Upgrade
Version history
1.12.0latest on PyPI · released Aug 27, 2026
Audit
Dependencies
microsoft-kiota-abstractionsrequiredThis library depends on Kiota's core abstraction layer for defining serialization and parsing interfaces.
Agent activity
13 hits · last 30 days
node
10
Amazon
1
Resources
microsoft-kiota-serialization-form — pip install microsoft-kiota-serialization-form · libregistry