⌘+k ctrl+k
1.3 (稳定版)
搜索快捷键 cmd + k | ctrl + k
类型 API

The DuckDBPyType class represents a type instance of our data types.

从其他类型转换

为了使 API 尽可能易于使用,我们添加了从现有类型对象到 DuckDBPyType 实例的隐式转换。这意味着在需要 DuckDBPyType 对象的地方,也可以提供以下列出的任何选项。

Python 内置类型

下表显示了 Python 内置类型到 DuckDB 类型的映射。

内置类型 DuckDB 类型
bool BOOLEAN
bytearray BLOB
bytes BLOB
float DOUBLE
int BIGINT
str VARCHAR

Numpy DTypes

下表显示了 Numpy DType 到 DuckDB 类型的映射。

类型 DuckDB 类型
bool BOOLEAN
float32 FLOAT
float64 DOUBLE
int16 SMALLINT
int32 INTEGER
int64 BIGINT
int8 TINYINT
uint16 USMALLINT
uint32 UINTEGER
uint64 UBIGINT
uint8 UTINYINT

嵌套类型

list[child_type]

list 类型对象映射到子类型的 LIST 类型。它也可以任意嵌套。

import duckdb
from typing import Union

duckdb.typing.DuckDBPyType(list[dict[Union[str, int], str]])
MAP(UNION(u1 VARCHAR, u2 BIGINT), VARCHAR)[]

dict[key_type, value_type]

dict 类型对象映射到键类型和值类型的 MAP 类型。

import duckdb

print(duckdb.typing.DuckDBPyType(dict[str, int]))
MAP(VARCHAR, BIGINT)

{'a': field_one, 'b': field_two, .., 'n': field_n}

dict 对象映射到一个由字典的键和值组成的 STRUCT 类型。

import duckdb

print(duckdb.typing.DuckDBPyType({'a': str, 'b': int}))
STRUCT(a VARCHAR, b BIGINT)

Union[type_1, ... type_n]

typing.Union 对象映射到所提供类型的 UNION 类型。

import duckdb
from typing import Union

print(duckdb.typing.DuckDBPyType(Union[int, str, bool, bytearray]))
UNION(u1 BIGINT, u2 VARCHAR, u3 BOOLEAN, u4 BLOB)

创建函数

对于内置类型,您可以使用 duckdb.typing 中定义的常量。

DuckDB 类型
BIGINT
BIT
BLOB
BOOLEAN
DATE
DOUBLE
FLOAT
HUGEINT
INTEGER
INTERVAL
SMALLINT
SQLNULL
TIME_TZ
TIME
TIMESTAMP_MS
TIMESTAMP_NS
TIMESTAMP_S
TIMESTAMP_TZ
TIMESTAMP
TINYINT
UBIGINT
UHUGEINT
UINTEGER
USMALLINT
UTINYINT
UUID
VARCHAR

对于复杂类型,DuckDBPyConnection 对象或 duckdb 模块上提供了相应的方法。任何接受 DuckDBPyType 的地方,我们都将接受可以隐式转换为 DuckDBPyType 的类型对象之一。

list_type | array_type

参数

  • child_type: DuckDBPyType

struct_type | row_type

参数

  • fields: Union[list[DuckDBPyType], dict[str, DuckDBPyType]]

map_type

参数

  • key_type: DuckDBPyType
  • value_type: DuckDBPyType

decimal_type

参数

  • width: int
  • scale: int

union_type

参数

  • members: Union[list[DuckDBPyType], dict[str, DuckDBPyType]]

string_type

参数

  • collation: Optional[str]