title: pandas to_sql enforced dtype for sqlite - incompatibility with unicode_literals
body: <p>I run into a problem when wanting to save pandas dataframe to a sqlite database with specified the datatype. I have the following module.py:</p>
  
  <pre><code># Import from future to make Python2 behave like Python3
  from __future__ import unicode_literals
  
  import os
  import pandas as pd
  
  from sqlalchemy import create_engine
  engine=create_engine('sqlite:///foo.db')
  cnx = engine.raw_connection()
  
  df_out = pd.DataFrame({'col1': ['1', '1'] ,'col2': ['1.0', '1.2'],'col3': ['A', 'B']})
  
  labels=['col1','col2','col3']
  types=['TEXT','TEXT','TEXT']
  mapping={k:v for k,v in zip(labels,types)}
  
  df_out.to_sql(name='table',if_exists='replace',con=cnx,dtype=mapping)
  
  df_in=pd.read_sql(sql='''SELECT * FROM "table" ''',con=cnx)
  </code></pre>
  
  <p>When I  run this code into a Python interpreter, I get the following error message <code>ValueError: col2 (TEXT) not a string</code>.</p>
  
  <p>For what I discovered the incompatibility comes from the statement <code>from __future__ import unicode_literals</code>. When removing it, I get the expected behaviour : <code>df_in.dtypes</code> describing 3 columns of object type.</p>
  
  <p>I tried to used raw strings <code>types=[r'TEXT',r'TEXT',r'TEXT']</code> but it did not change anything.</p>
  
  <p>Does anyone have a solution or a workaround.</p>
  
  <p>Best regards,</p>