You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google BigQuery TIMESTAMP对应Python数据类型及类型转换技术问询

关于Google BigQuery类型与Python类型映射的问题

嘿,我来帮你搞定这两个问题:

1. BigQuery TIMESTAMP对应的Python类型

Google BigQuery的TIMESTAMP类型对应的Python数据类型是**datetime.datetime**。更严谨的做法是使用带时区信息(比如UTC时区)的datetime.datetime对象,这样能避免时区转换带来的时间偏差或精度问题;如果是不带时区的naive datetime,BigQuery会默认将其视为UTC时间处理,但显式指定时区会更稳妥。

2. 完善类型转换函数

我帮你补充了TIMESTAMP的转换逻辑,同时扩展了其他常见BigQuery类型的映射,让函数覆盖更多常规场景:

import datetime

def convert_type_to_bigquery(object_type):
    if isinstance(object_type, str):
        return 'STRING'
    elif isinstance(object_type, datetime.datetime):
        return 'TIMESTAMP'
    elif isinstance(object_type, datetime.date):
        return 'DATE'
    elif isinstance(object_type, int):
        return 'INT64'
    elif isinstance(object_type, float):
        return 'FLOAT64'
    elif isinstance(object_type, bool):
        return 'BOOL'
    elif isinstance(object_type, bytes):
        return 'BYTES'
    # 若需要处理数组、结构体等复杂类型,可在这里扩展逻辑
    else:
        # 未匹配到类型时,可根据需求抛出异常或返回默认值
        raise TypeError(f"Unsupported data type: {type(object_type)}")

小提示:

  • 针对TIMESTAMP的判断逻辑会直接识别datetime.datetime实例,返回对应的BigQuery类型标识。
  • 额外补充的DATE(对应Python的datetime.date)、数值、布尔等类型映射,能覆盖大部分日常数据校验场景。
  • 如果需要处理数组、结构体这类复杂类型,可以进一步扩展函数,比如检测list类型返回ARRAY,但要注意BigQuery的数组要求元素类型统一,可能需要递归校验元素类型。

内容的提问来源于stack exchange,提问作者James Lloyd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:02:34