【问题标题】:Cannot pickle connection object无法腌制连接对象
【发布时间】:2020-01-06 14:55:03
【问题描述】:

我正在使用以下代码连接到 SQL Server 并返回连接,以便能够在其他功能中使用。但是,我收到can't pickle pyodbc.Connection objects

的错误

代码是:

def connect_to_the_DB(**kwargs):
    #Connection to SQL Server
    conn = pyodbc.connect(driver='{ODBC Driver 17 for SQL Server}',
                          server='test.co.uk',
                          database='testdb',
                          uid='crm',
                          pwd='test123')
    print("Connection established")
    logging.info("Connection established")
    return conn

任何提示,我该如何解决?

【问题讨论】:

  • 如何调用connect_to_the_DB函数?
  • 我正在使用 Apache Airflow。所以,我正在为任务分配功能。@CDJB
  • 这就像我在 SO 上最喜欢的帖子标题

标签: python sql-server database connection pickle


【解决方案1】:

有些对象是不可腌制的(见Pickling unpicklable objects)。我对 Redis 连接也有同样的问题,看起来与此类似,但我不确定。

一般建议是提取您需要的数据,然后只腌制它,而不是连接本身。

【讨论】: