Skip to content

SSLV3_ALERT_HANDSHAKE_FAILURE when making requests to theforexapi.com #155

Open
@KornelPudlo

Description

@KornelPudlo

I am using the forex_python library to convert currency values to USD using historical rates. However, I am encountering an SSL handshake failure when the library makes HTTPS requests to 'theforexapi.com'. The error message is as follows:

Error converting AUD for year 2022: HTTPSConnectionPool(host='theforexapi.com', port=443): Max retries exceeded with url: /api/2022-01-01?base=AUD&symbols=USD&rtype=fpy (Caused by SSLError(SSLError(1, '[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:997)')))

I have a csv file that contain multiple columns such as:
symbol, date, year, open, currency.

Currency columns contain values such as:
AUD, EUR, NZD, USD, GBP etc and trying to convert the $$$ from 'open' column to $USD based on a 'date' column.

Can someone try to help me? :)

Code below:

`
import pandas as pd
from forex_python.converter import CurrencyRates
from datetime import datetime

def convert_to_usd(row, c):
try:
# Constructing a date object with the year from the row and default month and day
date_obj = datetime(row['year'], 1, 1)
rate = c.get_rate(row['currency'], 'USD', date_obj)
return round(row['open'] * rate, 2)
except Exception as e:
print(f"Error converting {row['currency']} for year {row['year']}: {e}")
return None

def main():
# Load the CSV file
df = pd.read_csv('my_source_file_here_df.csv')

df['currency'] = df['currency'].str.strip().str.upper()

# Initialize currency converter
c = CurrencyRates()

# Convert prices to USD using historical rates
df['open_usd'] = df.apply(lambda row: convert_to_usd(row, c), axis=1)

# Save the updated dataframe to a new CSV file
df.to_csv('my_unpivoted_file_here_with_USD_df.csv', index=False)
print("Conversion completed and saved to 'converted_prices_with_historical_rates.csv'.")

if name == "main":
main()
`

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions