⌘+k ctrl+k
1.4 (LTS)
搜索快捷键 cmd + k | ctrl + k
类型 API

DuckDBPyType 类代表了我们 数据类型 的类型实例。

从其他类型转换

为了使 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.sqltypes
from typing import Union

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

dict[key_type, value_type]

dict 类型对象映射为包含键类型和值类型的 MAP 类型。

import duckdb.sqltypes

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

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

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

import duckdb.sqltypes

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

Union[type_1, ... type_n]

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

import duckdb.sqltypes
from typing import Union

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

创建函数

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

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]
© 2025 DuckDB 基金会,阿姆斯特丹,荷兰
行为准则 商标使用指南