This is my method:
def print_relative_strength_by_ticker(self, tickers): # print relative strength tickers_list = tickers.split(" ") if len(tickers_list) == 1: query = "SELECT ticker, rs FROM companyinfo WHERE ticker = %s" params = [tickers_list[0]] # Wrap the single ticker in a list or a tuple else: query = "SELECT ticker, rs FROM companyinfo WHERE ticker IN %(tickers_tuple)s" # The key 'tickers' is a string that represents the named parameter in the SQL query (%(tickers)s) params = {'tickers_tuple': tuple(tickers_list)} # creates a dictionary with a single key-value pair df = self.db.read_sql(query, params=params) for index, row in df.iterrows(): print("Ticker:", row['ticker'], "\tRS:", row['rs'])I updated Spyder but did not make any changes to my code. Now I'm getting an error; I've never had one before, and I'm not sure if it's sqlachemly or not; how can I handle this?
s.print_relative_strength_by_ticker('estc')Traceback (most recent call last): Cell In[27], line 1 s.print_relative_strength_by_ticker('estc') File D:\Stocks/Code\stock_analysis_class.py:111 in print_relative_strength_by_ticker df = self.db.read_sql(query, params=params) File D:\Stocks/Code\mysql_class.py:33 in read_sql df = pd.read_sql(query, conn, params=params, index_col=index_col) File C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\sql.py:682 in read_sql return pandas_sql.read_query( File C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\sql.py:1776 in read_query result = self.execute(sql, params) File C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\sql.py:1599 in execute return self.con.exec_driver_sql(sql, *args) File C:\ProgramData\Anaconda3\lib\site-packages\sqlalchemy\engine\base.py:1767 in exec_driver_sql distilled_parameters = _distill_raw_params(parameters) File lib\\sqlalchemy\\cyextension\\util.pyx:38 in sqlalchemy.cyextension.util._distill_raw_params File lib\\sqlalchemy\\cyextension\\util.pyx:17 in sqlalchemy.cyextension.util._check_itemArgumentError: List argument must consist only of tuples or dictionaries