Используйте запрос SQL в качестве входных данных для циклического прохождения и вызова API - PullRequest
0 голосов
/ 21 мая 2019

Я новичок в Python и хочу использовать значения из SQL-запроса, а не передавать параметр в скрипт.Это значение находится в базе данных сервера SQL

. Я получил его, передав в качестве параметра EmployeeID, поэтому я просто использовал динамический SQL для построения вызовов Python, сохранения и запуска в файле .bat.

Я хочу добавить 'Select EmployeeID from ciphr_staging where date_left is null' в качестве входного запроса, чтобы указать значение в конце URL-адреса, и просмотреть все employeeID, возвращаемые запросом.

import json
import pyodbc
import requests
import sys

user = sys.argv[1]
url = "https://someurl.com/api/PersonPhoto/{}".format(user)

headers = {
   'Accept': "application/json",
   'Authorization': "apikey ekereeerererereerrerererererereere",
   'Content-Type': "application/json",
    'cache-control': "no-cache"
   }

response = requests.request("GET", url, headers=headers)
RTP = response.text
RTP = "{\"PersonPhoto\": [" + RTP + "]}"
data = json.loads(RTP)

ID,Photo,PhotoDate,PhotoType = [],[],[],[]

for device in data['PersonPhoto']:

    ID.append(device[u'ID'])
    Photo.append(device[u'Photo'])
    PhotoDate.append(device[u'PhotoDate'])
    PhotoType.append(device[u'PhotoType'])

connStr = pyodbc.connect(
    "DRIVER={SQL Server};"
    "SERVER=Testme;"
    "Database=Intranet;"
    "Trusted_Connection=yes;"
    )
cursor = connStr.cursor()

sql = "INSERT INTO dbo.Employee_Photo2 ([EmployeeID],[PhotoBinary],[PhotoDate],[FileType]) VALUES (?,?,?,?)"

vals = [(int(device[u'ID']), device[u'Photo'], device[u'PhotoDate'], device[u'PhotoType']) \
           for device in data['PersonPhoto']]

cursor.executemany(sql, vals)   
connStr.commit()
cursor.close()
connStr.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...