Secuencia de comandos de Python para cargar la salida de la API REST

Un usuario Pregunto ✅

Anónimo

Tenemos una aplicación que acaba de hacer disponible la API REST.

Queremos extraer datos de aquí y crear paneles agradables en PowerBI. Entonces, el objetivo final de esto es que sea en tiempo real.

Ahora, el token de la API REST caduca cada 60 minutos. Así que creamos un script de Python que recupera el token. La salida final es un archivo json. ¿Cómo puedo alimentar esta salida directamente en powerbi en lugar de guardar el archivo en mi estación de trabajo local?

Código de muestra:

 

import ssl
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning
import requests.auth
import json
from json import dumps, loads
import logging
import argparse
import sys

#install python-requests
#from swagger import Swagger

# Disable all SSL Cert checking
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)


################################################################################
# INPUT PARAMTERS

CLIENT_ID="xxxxxxx"
CLIENT_SECRET="xxxxxx"
CTF_URL="https://www.cxxx.com"
PROJECT_ID="xxxxxx" # you can use trackerID here as well
OUT_DIR="C:RestApi Results"
################################################################################

SCOPE="urn:ctf:services:ctf urn:ctf:services:soap60" 
#grant_type=password&client_id=api-client&scope=$scope&username=$username&password=$password" $site_url/sf/auth/token

def getToken():
try:
post_data = {"grant_type": "password"
,"client_id": "api-client"
,"scope": SCOPE
,"username": CLIENT_ID
,"password": CLIENT_SECRET}

response = requests.post(CTF_URL + "/sf/auth/token", data=post_data, verify=False)
token_json = response.json()
return token_json["access_token"]
except (RuntimeError, TypeError, NameError, KeyError):
print "Invalid Token"
sys.exit(1)

 

def main():
url = CTF_URL+"/ctfrest/tracker/v1/artifacts?containerid="+PROJECT_ID+"&includeIconLinks=false&sortBy=-lastModifiedDate&offset=0&count=-1&fullPageInfo=true"
#url = CTF_URL+"ctfrest/foundation/v1/projects/"+PROJECT_ID
header = {"Authorization": "Bearer " + getToken() , "Content-Type": "application/json","Accept": "application/json", "If-Match":"*"}
response = requests.get(url, verify =False, headers=header)

print response.json()
with open(OUT_DIR+'data.json', 'w') as outfile:
json.dump(response.json(), outfile)

if __name__ == '__main__':
main()

@Anónimo,

Puede echar un vistazo a Uso de Python en Power Query Editor e investigar el Editor avanzado.

Anónimo

Tenemos una aplicación que acaba de hacer disponible la API REST.

Queremos extraer datos de aquí y crear paneles agradables en PowerBI. Entonces, el objetivo final de esto es que sea en tiempo real.

Ahora, el token de la API REST caduca cada 60 minutos. Así que creamos un script de Python que recupera el token. La salida final es un archivo json. ¿Cómo puedo alimentar esta salida directamente en powerbi en lugar de guardar el archivo en mi estación de trabajo local?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *