title: Converting pyodbc.Row to list or tuple
body: <p>Trying to convert <code>pyodbc.Row</code> to a list or tuple because I'm trying to add data to a mysql table.</p>
  
  <p>Tried a list comprehension which didn't seem to work.</p>
  
  <pre><code>import pymysql
  import pymysql.cursors
  import pyodbc
  import psycopg2
  from db_credentials import ...
  
  class ETLOverwrite():
  
  def __init__(self, database, sql_query, to_table):
      self.database = database
      self.sql_query = sql_query
      self.to_table = to_table
  
  def load_to_db(self):
      print('\nStarting upload...\n')
  
      # CONNECT TO SOURCE DATABASE
      if self.database == '...':
          source_conn = pymysql.connect(**...)
      elif self.database == '...':
          source_conn = pyodbc.connect(**...)
      elif self.database == '...':
          source_conn = psycopg2.connect(**...)
  
      # EXTRACT SOURCE DATA
      with source_conn.cursor() as source_cursor:
          source_cursor.execute(sql_query)
          field_names = [i[0] for i in source_cursor.description]
          field_names = ', '.join(field_names)
          fetched_data = source_cursor.fetchall()
          data = [rows for rows in fetched_data]
  
  
      source_conn.commit()
      source_conn.close()
  
      from pprint import pprint
      pprint(field_names)
      print('\n')
      pprint(data[:10])
      print('\n')
      print(type(data[0]))
      print('\n')
  
      # CONNECT TO TARGET DATABASE
      target_conn = pymysql.connect(**..., charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)
  
      with target_conn.cursor() as target_cursor:
          placeholders = ', '.join(['%s'] * len(data[0]))
          insert_statement = "INSERT INTO %s (%s) VALUES (%s)" % (self.to_table, field_names, placeholders)
          print(insert_statement)
          target_cursor.executemany(insert_statement, data)
  
      target_conn.commit()
      target_conn.close()
  
  
      print('Finished')
  </code></pre>
  
  <p>Expect to see everything inserted into target database table.
  Instead I get following error: <code>AttributeError: 'pyodbc.Row' object has no attribute 'translate'</code></p>
  
  <p>When I try to convert fetched data to a list from a pyodbc.Row using a list comprehension, it doesn't seem to work. Here is final output</p>
  
  <pre><code>Starting upload...
  
  'id, currency, commission_amount'
  
  
  [(4315245, 'GBP', Decimal('1.0000000000')),
   (5235235, 'GBP', Decimal('1.0000000000')),
   (23523523, 'GBP', Decimal('1.0000000000')),
   (53253, 'GBP', Decimal('1.0000000000')),
   (32523, 'GBP', Decimal('1.0000000000')),
   (3456344, 'GBP', Decimal('1.0000000000')),
   (236236, 'GBP', Decimal('1.0000000000')),
   (34634672, 'GBP', Decimal('1.0000000000')),
   (2462346, 'GBP', Decimal('1.0000000000')),
   (2356236, 'GBP', Decimal('1.0000000000'))]
  
  
  &lt;class 'pyodbc.Row'&gt;
  
  
  INSERT INTO commissionAmount (booking_id, currency, commission_amount) VALUES (%s, %s, %s)
  ---------------------------------------------------------------------------
  AttributeError                            Traceback (most recent call last)
  
  etc etc etc
  </code></pre>