Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 局部变量';光标';分配前参考_Python 3.x_Google Cloud Functions_Snowflake Cloud Data Platform - Fatal编程技术网

Python 3.x 局部变量';光标';分配前参考

Python 3.x 局部变量';光标';分配前参考,python-3.x,google-cloud-functions,snowflake-cloud-data-platform,Python 3.x,Google Cloud Functions,Snowflake Cloud Data Platform,我正试图连接雪花数据库,但它说在赋值之前引用了局部变量“cursor”。我在代码中遗漏了什么吗 以下是错误的屏幕截图: 这是我的代码: def Source_database(self, source): try: print('######################################Cursor creation on database#################################')

我正试图连接雪花数据库,但它说在赋值之前引用了局部变量“cursor”。我在代码中遗漏了什么吗

以下是错误的屏幕截图:

这是我的代码:

def Source_database(self, source):

        try:
            print('######################################Cursor creation on database#################################')
              if source['systemType'] == 'mysql':
         '''block of code'''
        exception: 
             print("")
              elif source['systemType'] == 'snowflake':
      
                 try:

                   snowflake_connection = None
                   source_db_name = 'xxx'
                   source_db_username = 'xxx'
                   source_db_password = 'xxx'
                   source_db_port = 'xx'
                   source_db_endpoint = 'xxx'
                   source_db_warehouse = 'xx'
                   schema_name = 'xx'
                   with closing(sf.connect()) as conn:
                        with closing(conn.cursor()) as cursor:
                            snowflake_connection = sf.connect(user=source_db_username,password=source_db_password,
                                                            warehouse=source_db_warehouse, database=source_db_name,schema=schema_name,
                                                            account= source_db_endpoint)
                            print('Success')
                            #cursor = snowflake_connection.cursor()
                            self.engine = snowflake_connection
                            print("Snowflake Cursor created Successfully")
                except Exception as e:
                    print("Snowflake Cursor is not built please check the connection details {}".format(e))

据我所知,连接类没有游标成员

elif source['systemType']=='snowflake':
尝试:
雪花_连接=无
source_db_name='xxx'
source\u db\u用户名='xxx'
source_db_password='xxx'
源\数据库\端口='xx'
source_db_endpoint='xxx'
source\u db\u仓库='xx'
架构名称='xx'
关闭(sf.connect())作为连接:
以关闭(sf.cursor())作为光标:
snowflake\u connection=sf.connect(用户=source\u db\u用户名,密码=source\u db\u密码,
仓库=源数据库仓库,数据库=源数据库名称,模式=模式名称,
account=源\数据库\端点)
打印(‘成功’)
#游标=雪花_连接。游标()
self.engine=雪花_连接
打印(“雪花光标创建成功”)
例外情况除外,如e:
打印(“雪花光标未生成,请检查连接详细信息{}”。格式(e))

试试这个

这个问题的根本原因是我不需要为雪花数据库指定域名的端点。但是在主代码中,我已经传递了域名,Snowflake也将尝试为端点附加域名。这个问题解决了。谢谢大家的宝贵建议。

尝试上面的代码,我发现错误如下“函数执行耗时60004毫秒,完成状态为:‘超时’函数是什么。你能把它包括在你的代码中吗?欢迎加入SO。请发布完整的回溯。正在初始化的
sf
变量在哪里?“我看不出这是在哪里发生的。”西蒙德谢谢你的评论。我解决了这个问题。这个问题的根本原因是我不需要指定域名的端点,但是在主代码中,我已经用域名传递了。雪花将为端点附加域名。