尝试在 Python 中使用 bcp 将 CSV 上传到数据库时出现问题

我在尝试通过 bcp 将 CSV 文件上传到 Azure MS SQL 数据库时遇到问题。

我正在使用Bcpy工具来实现这一点。

这是我正在运行的脚本:

sql_config = {

            'server': 'sql_server_hostname',

            'database': 'database_name',

            'username': 'user',

            'password': 'password'

        }

        sql_table_name = 'test_data1'

        csv_file_path = 'data1.csv'            #File in the script directory

        flat_file = bcpy.FlatFile(qualifier='', path=csv_file_path)

        sql_table = bcpy.SqlTable(sql_config, table=sql_table_name)

        flat_file.to_sql(sql_table)


运行脚本后,我收到以下错误:


<ipython-input-11-97d18f6b2041> in function()

    263         flat_file = bcpy.FlatFile(qualifier='', path=csv_file_path)

    264         sql_table = bcpy.SqlTable(sql_config, table=sql_table_name)

--> 265         flat_file.to_sql(sql_table)

    266 

    267 


c:\users\user\appdata\local\programs\python\python37\lib\site-packages\bcpy\data_objects.py in to_sql(self, sql_table, use_existing_sql_table, batch_size)

    157                 ),

    158                 username=sql_table.username,

--> 159                 password=sql_table.password)

    160         bcp(sql_table=sql_table, flat_file=self, batch_size=batch_size)

    161 


c:\users\user\appdata\local\programs\python\python37\lib\site-packages\bcpy\binary_callers.py in sqlcmd(server, database, command, username, password)

     81                      ['-s,', '-W', '-Q', command]

     82     result = subprocess.run(sqlcmd_command, stdout=subprocess.PIPE,

---> 83                             stderr=subprocess.PIPE)

     84     if result.returncode:

     85         result_dump = str(result).replace(password, sha512(password))


填充“sql_table_name”参数时,我尝试使用“test_data1”和“dbo.test_data1”。


由于它是一个 Azure MS SQL 数据库,因此服务器参数的写法如下:“servername.database.windows.net”


你知道这可能是什么原因吗?您知道将 CSV 文件上传到我的数据库的任何其他选项吗?


至尊宝的传说
浏览 141回答 2
2回答

慕桂英4014372

错误是:FileNotFoundError:&nbsp;[WinError&nbsp;2]&nbsp;The&nbsp;system&nbsp;cannot&nbsp;find&nbsp;the&nbsp;specified&nbsp;file你确定以下行csv_file_path&nbsp;=&nbsp;'data1.csv'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#File&nbsp;in&nbsp;the&nbsp;script&nbsp;directory是文件的完整路径吗?

白衣非少年

我遇到了同样的问题(在底层 bcpy 库中的同一行代码上)。我的问题是,虽然我通过Microsoft Command Line Utilities for SQL Server 15(链接:https&nbsp;://learn.microsoft.com/en-us/sql/tools/bcp-utility?view=sql-server-ver15 )安装了 bcp,但我没有重新安装打开我的 cmd 提示符,因此无法使用 sqlcmd/bcp 命令。重启cmd后,完美运行!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python