Advertisement
snip3r77

Untitled

Jul 22nd, 2023
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.10 KB | None | 0 0
  1. import json
  2. import requests
  3. import pandas as pd
  4. import boto3
  5. import awswrangler as wr
  6. from pandas import json_normalize
  7. from io import StringIO, BytesIO
  8. import json
  9. from datetime import date
  10.  
  11. def day_to_api(day):
  12. day_to_call = '2023-07-'+ str(day).zfill(2)
  13. api_url = f'https://cdn.jsdelivr.net/gh/fawazahmed0/currency-api@1/{day_to_call}/currencies/usd.json'
  14. response = requests.get(api_url).json()
  15. dct = response['usd']
  16. dct['date'] = response['date']
  17. l = ['date','usd','sgd','cny','btc','myr']
  18. new_dict = dict( ((key, dct[key]) for key in l) )
  19. return json_normalize(new_dict)
  20.  
  21.  
  22. def lambda_handler(event, context):
  23. df = day_to_api('7')
  24.  
  25. my_session = boto3.Session()
  26. raw_s3_bucket = 'andrewawsbucket'
  27. raw_path_dir = 'data/testparquetdataloader/'
  28. raw_path = f"s3://{raw_s3_bucket}/{raw_path_dir}"
  29.  
  30. wr.s3.to_parquet(
  31. df=df,
  32. path=raw_path,
  33. boto3_session=my_session,
  34. dataset=True,
  35. partition_cols=["date"],
  36. mode="append")
  37.  
  38. df = wr.s3.read_parquet(raw_path, boto3_session=my_session,dataset=True)
  39. print(df)
  40.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement