首页 > 解决方案 > 执行数据传输的 python 脚本中的 AttributeError

问题描述

有一个 Python 脚本可以将数据从一个 SQL Server 数据库表移动到一个 Postgresql 数据库表。这适用于大多数表,这是执行此操作的方法:

def move_data(self, my_job=None):
        if my_job:
            self.job = my_job
        chunk = self.job.get('chunk_size', 1000)
        tbl_size = self.get_cur_job_size()

        self.create_tbl()
        logging.info("processing %s", self.job.get('name', self.job_name))
        message = "invalid chunk value in {t}".format(t=self.job.get('name'))
        assert(isinstance(chunk, int)), message

        for i in range(1, tbl_size + 1, chunk):
            start = i
            end = start + chunk - 1
            if end > tbl_size:
                end = tbl_size
            logging.info("Working on range {0} to {1}".format(start, end))

            self.data = self.build_from_data_paged(i, end)

            if len(self.data) == 0:
                break

            self.fill_temp_table_paged()
        return True

但是,对于一个表(似乎与其他表没有什么不同),此操作失败,并且我收到以下错误:

AttributeError: 'NoneType' object has no attribute 'get'

是什么原因造成的?

标签: pythonsql-serverpostgresql

解决方案


推荐阅读