ETL Dollar price
Step I - Extract
!pip install twilio==7.16.0
Collecting twilio==7.16.0
Downloading twilio-7.16.0-py2.py3-none-any.whl (1.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.4/1.4 MB 95.3 MB/s eta 0:00:00
Requirement already satisfied: requests>=2.0.0 in /shared-libs/python3.9/py/lib/python3.9/site-packages (from twilio==7.16.0) (2.28.1)
Requirement already satisfied: PyJWT<3.0.0,>=2.0.0 in /shared-libs/python3.9/py/lib/python3.9/site-packages (from twilio==7.16.0) (2.6.0)
Requirement already satisfied: pytz in /shared-libs/python3.9/py/lib/python3.9/site-packages (from twilio==7.16.0) (2022.5)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in /shared-libs/python3.9/py/lib/python3.9/site-packages (from requests>=2.0.0->twilio==7.16.0) (1.26.12)
Requirement already satisfied: idna<4,>=2.5 in /shared-libs/python3.9/py-core/lib/python3.9/site-packages (from requests>=2.0.0->twilio==7.16.0) (3.4)
Requirement already satisfied: charset-normalizer<3,>=2 in /shared-libs/python3.9/py-core/lib/python3.9/site-packages (from requests>=2.0.0->twilio==7.16.0) (2.1.1)
Requirement already satisfied: certifi>=2017.4.17 in /shared-libs/python3.9/py/lib/python3.9/site-packages (from requests>=2.0.0->twilio==7.16.0) (2022.9.24)
Installing collected packages: twilio
Successfully installed twilio-7.16.0
WARNING: You are using pip version 22.0.4; however, version 22.3.1 is available.
You should consider upgrading via the '/root/venv/bin/python -m pip install --upgrade pip' command.
import requests
from apikey2 import API_KEY2
import pandas as pd
import json
import os
from twilio.rest import Client
from twilio_config import TWILIO_ACCOUNT_SID,TWILIO_AUTH_TOKEN,PHONE_NUMBER
import time
from requests import Request, Session
from requests.exceptions import ConnectionError, Timeout, TooManyRedirects
from datetime import datetime
'''
Code that allows extract data of dollar from API apilayer
Carlos Astorga
'''
url = "https://api.apilayer.com/currency_data/live?source=¤cies=EUR"
payload = {}
headers= {
"apikey": API_KEY2
}
response = requests.request("GET", url, headers=headers, data = payload)
status_code = response.status_code
result = response.text
import time
print(result)
{
"success": true,
"timestamp": 1672419183,
"source": "USD",
"quotes": {
"USDEUR": 0.93589
}
}
Step II - Transform
# because result is a string, I transform it to a dictionary with json.loads() function
data = json.loads(result)
data
df = pd.DataFrame(data = data)
print(df)
success timestamp source quotes
USDEUR True 1672419183 USD 0.93589
# accesing the content
df = df.iloc[0]['quotes']
print(df)
0.93589
# Save to file
file = open("./dollar.txt", "w")
file.write(str(df))
print("Datos guardados con éxito!")
Datos guardados con éxito!
#--------------------------------------------------- TWILIO ---------------
# template para luego enviar al celular
template = '\nHola Carlos! \n\n El valor del Dollar para hoy es: \n\n '+ str(df)
print(template)
time.sleep(2)
account_sid = TWILIO_ACCOUNT_SID
auth_token = TWILIO_AUTH_TOKEN
client = Client(account_sid, auth_token)
message = client.messages \
.create(
body = template,
from_ = PHONE_NUMBER,
to = '+34 611 11 11 11'#your number
)
print('El mensaje fue enviado con éxito!' + message.sid)
Hola Carlos!
El valor del Dollar para hoy es:
0.93589
El mensaje fue enviado con éxito!SM3c35bf5c2db5519f1e873c2f14ca19a5