我一直在用Python开发我的技能集来调用RestAPIs、返回/解析json并存储结果。最终,我的最终目标是构建程序,将我们的数据引入数据仓库。在
我已经能够调用api并将数据存储到CSV中,我可以打开数据库连接并运行SQL语句并打印结果,但这是我的权宜之计。在
既然SQL Server 2017能够在SSMS中运行python脚本并创建存储过程,我希望能够弥补SQL中的差距,并使用python调用API,返回数据,然后使用SQL验证并将数据附加到正确的表中。在
我在sqlserver中看到的Python脚本示例仅用于分析sqlserver中已有的数据,而不是存储在SQL中的数据。在
这就是我目前所拥有的。在
我需要什么Python包,以及如何将SQL语句/SQL变量插入Python脚本以使用?在--Python Version
execute sp_execute_external_script
@language = N'Python',
@script = N'
import sys
import codecs
import requests
import json
locations = select top(10) locationId from TestDb.locationstable
for j in range(locations):
url = "http://example.com/api/location/" + locations[j]+ "/users"
querystring = {"pretty":"1"}
headers = {"Api-Key": ""}
r = requests.request("GET", url, headers=headers, params=querystring)
d = r.json()
status = d["status"]
responseData = d["data"]["Users"]
print(status)
print(responseData)
python部分在sqlserver中工作,我将for循环输出并将一个位置硬编码到脚本中,但不确定如何从select语句中获取引用数据列表的locations变量,以便在python脚本中工作。在
然后,如果返回的响应数据如下所示,我将如何处理它:
^{pr2}$