Map, set, and list types (Python)
The Data API supports map, set, and list types (CQL collection types).
Map
Use the map type to store a typed set of key-value pairs represented as a JSON object.
When you define a map column, you specify the data type for the keys and values.
For an example defining a map column, see Create a table (Python).
When written to a table, maps are internally ordered by their keys, and they are returned in that order.
The following limitations apply:
-
Maps cannot have a map, set, or list as a key or value.
-
Frozen maps created in CQL (outside the Data API) aren’t accessible through the Data API. For more information, see Support for existing tables.
The Python client accepts plain dictionaries or DataAPIMap.
It returns DataAPIMap, unless you set APIOptions.serdes_options.custom_datatypes_in_reading to false.
Set
Use the set type to store a typed collection of unique values represented as a JSON array.
When you define a set column, you specify the data type for the values.
For an example defining a set column, see Create a table (Python).
When written to a table, sets are ordered by their values.
The following limitations apply:
-
Frozen sets created in CQL (outside the Data API) aren’t accessible through the Data API. For more information, see Support for existing tables.
The Python client accepts Python sets or DataAPISet.
It returns DataAPISet, unless you set APIOptions.serdes_options.custom_datatypes_in_reading to false.
List
Use the list type to store a typed collection of ordered, non-unique values represented as a JSON array.
When you define a list column, you specify the data type for the values.
When written to a table, lists elements are ordered by their position in the list.
The following limitations apply:
-
Frozen lists created in CQL (outside the Data API) aren’t accessible through the Data API. For more information, see Support for existing tables.
The Python client accepts and returns plain arrays.