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:
-
No nested maps, such as
map<string,map<string,string>>. -
Maps are not supported in primary keys, indexes, or
filterclauses. -
Maps can have only
textorasciikeys. -
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:
-
No nested sets.
-
Sets are not supported in primary keys, indexes, or
filterclauses. -
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:
-
No nested lists.
-
Lists are not supported in primary keys, indexes, or
filterclauses. -
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.