微软服务器中的python脚本

时间:2017-12-02 12:37:47

标签: python sql-server

大家好,

我试图围绕微软服务器2017和python脚本。 一般来说 - 我试图存储我从网站上获取的表格(使用bs4), 将它存储在panda df中,然后简单地将结果放在临时sql表中。

我输入了以下代码(我跳过部分代码,因为python脚本 在python中工作。请记住,我从microsoft sql server 2017调用脚本):

    CREATE PROC OTC 
AS
BEGIN
EXEC sp_execute_external_script  
@language = N'Python',
@script = N'

import bs4 as bs
import pandas as pd
import requests
....
r = requests.get(url, verify = False)
html = r.text
soup = bs.BeautifulSoup(html, "html.parser")
data_date = str(soup.find(id="ctl00_SPWebPartManager1_g_4be2cf24_5a47_472d_a6ab_4248c8eb10eb_ctl00_lDate").contents)
t_tab1 = soup.find(id="ctl00_SPWebPartManager1_g_4be2cf24_5a47_472d_a6ab_4248c8eb10eb_ctl00_NiaROGrid1_DataGrid1")
df = parse_html_table(1,t_tab1)
print(df)
OutputDataSet=df
'

我尝试过微软教程,根本无法理解如何操作 处理输入/输出以将结果作为sql表获取。 此外,我收到错误

"   将bs4导入为bs ImportError:没有名为' bs4' "

我在这里显然很遗憾。 我要添加到sql代码中的什么? sql server甚至支持bs4吗?还是只有熊猫? 然后我需要找到另一个解决方案,比如写为csv?

感谢您提供的任何帮助或建议

1 个答案:

答案 0 :(得分:0)

使用pip在SQL Server 2017上安装Python包:

  • 在服务器上,以管理员身份打开命令提示符。
  • 然后cd{instance directory}\PYTHON_SERVICES\Scripts
    (例如:C:\Program Files\Microsoft SQL Server\MSSQL14.SQL2017\PYTHON_SERVICES\Scripts)。
  • 然后执行pip install {package name}

您已安装必要的软件包并且脚本成功执行,只需将变量OutputDataSet设置为pandas数据框将导致该数据框的内容作为存储的结果集返回程序。

如果要在表格中捕获该结果集(可能是临时表格),可以使用INSERT...EXEC(例如INSERT MyTable(Col1, Col2) EXEC sp_execute_external_script ...)。