Hello,

That's a good question actually. If you follow my Stackoverflow Post you'll 
see I've updated it with the following information :

The dataframe that is persisted in the database is :

   index   0   1   2   3   4   5   6   7   8   90      0  11  57  75  45  81  
70  91  66  93  961      1  51  43   3  64   2   6  93   5  49  402      2  35  
80  76  11  23  87  19  32  13  983      3  82  10  69  40  34  66  42  24  82  
594      4  49  74  39  61  14  63  94  92  82  855      5  50  47  90  75  48  
77  17  43   5  296      6  70  40  78  60  29  48  52  48  39  367      7  21  
87  41  53  95   3  31  67  50  308      8  72  79  73  82  20  15  51  14  38  
429      9  68  71  11  17  48  68  17  42  83  95



So I actually have no idea where that column name is referenced.

Best regards,
Imad.

On Wednesday, August 22, 2018 at 10:37:30 AM UTC+2, Simon King wrote:
>
> I've never used Pandas, so this may not make any sense, but where does 
> the column "VARIABLE_VALUE" come from? Is it a column in your 
> dataframe? 
>
> Simon 
>
> On Wed, Aug 22, 2018 at 8:52 AM <imad.youb...@gmail.com <javascript:>> 
> wrote: 
> > 
> > I get the following warnings, when trying to save a simple dataframe to 
> mysql.: 
> > 
> > > C:\...\anaconda3\lib\site-packages\pymysql\cursors.py:170: Warning: 
> (1366, "Incorrect string value: '\\x92\\xE9t\\xE9)' for column 
> 'VARIABLE_VALUE' at row 518") 
> >   result = self._query(query) 
> > 
> > And 
> > > C:\...anaconda3\lib\site-packages\pymysql\cursors.py:170: Warning: 
> > > (3719, "'utf8' is currently an alias for the character set UTF8MB3, 
> > > but will be an alias for UTF8MB4 in a future release. Please consider 
> > > using UTF8MB4 in order to be unambiguous.")   result = 
> > > self._query(query) 
> > 
> > Environment info : I use Mysql8, python3.6 (pymysql 0.9.2, sqlalchemy 
> 1.2.1) 
> > 
> > I visited posts like the one linked bellow, none of which seem to give a 
> solution as to how to avoid this warning. 
> > 
> >  - [MySQL “incorrect string value” error when save unicode string in 
> Django][1] -> Indication is to use UTF8 
> > 
> > 
> > N.B : The Collation in the table within mysql doesn't seem to be set to 
> the one I specified in the `create_db` function within the `Connection` 
> class. 
> > 
> > The executable code: 
> > 
> >     import DataEngine.db.Connection as connection 
> >     import random 
> >     import pandas as pd 
> > 
> >     if __name__ == "__main__": 
> >         conn = connection.Connection(host="host_name", port="3306", 
> user="username", password="password") 
> >         conn.create_db("raw_data") 
> >         conn.establish("raw_data") 
> >         l1 = [] 
> >         for i in range(100): 
> >             l_nested = [] 
> >             for j in range(10): 
> >                 l_nested.append(random.randint(0, 100)) 
> >             l1.append(l_nested) 
> >         df = pd.DataFrame(l1) 
> > 
> >         conn.save(df, "random_df") 
> >         # df2 = conn.retrieve("random_df") 
> > 
> > My `Connection class` 
> > 
> >     import sqlalchemy 
> >     import pymysql 
> >     import pandas as pd 
> > 
> > 
> >     class Connection: 
> >         def __init__(self: object, host: str, port: str, user: str, 
> password: str): 
> >             self.host = host 
> >             self.port = port 
> >             self.user = user 
> >             self.password = password 
> >             self.conn = None 
> > 
> >         def create_db(self: object, db_name: str, charset: str = 
> "utf8mb4", collate:str ="utf8mb4_unicode_ci",drop_if_exists: bool = True): 
> >             c = pymysql.connect(host=self.host, user=self.user, 
> password=self.password) 
> >             if drop_if_exists: 
> >                 c.cursor().execute("DROP DATABASE IF EXISTS " + db_name) 
> >             c.cursor().execute("CREATE DATABASE " + db_name + " 
> CHARACTER SET=" + charset + " COLLATE=" + collate) 
> >             c.close() 
> >             print("Database %s created with a %s charset" % (db_name, 
> charset)) 
> > 
> >         def establish(self: object, db_name: str, charset: str = 
> "utf8mb4"): 
> >             self.conn = sqlalchemy.create_engine( 
> >                 "mysql+pymysql://" + self.user + ":" + self.password + 
> "@" + self.host + ":" + self.port + "/" + db_name + 
> >                 "?charset=" + charset) 
> >             print("Connection with database : %s has been established as 
> %s at %s." % (db_name, self.user, self.host)) 
> >             print("Charset : %s" % charset) 
> > 
> >         def retrieve(self, table): 
> >             df = pd.read_sql_table(table, self.conn) 
> >             return df 
> > 
> >         def save(self: object, df: "Pandas.DataFrame", table: str, 
> if_exists: str = "replace", chunksize: int = 10000): 
> >             df.to_sql(name=table, con=self.conn, if_exists=if_exists, 
> chunksize=chunksize) 
> > 
> > Some elements that might help: 
> > [![Database is of charset utf8mb4][2]][2] 
> > [![Table columns don't seem to have the correct collation even though I 
> specified it when creating the db][3]][3] 
> > 
> > 
> >   [1]: 
> https://stackoverflow.com/questions/2108824/mysql-incorrect-string-value-error-when-save-unicode-string-in-django
>  
> >   [2]: https://i.stack.imgur.com/9iAPF.png 
> >   [3]: https://i.stack.imgur.com/qBq6U.png 
> > 
> > -- 
> > SQLAlchemy - 
> > The Python SQL Toolkit and Object Relational Mapper 
> > 
> > http://www.sqlalchemy.org/ 
> > 
> > To post example code, please provide an MCVE: Minimal, Complete, and 
> Verifiable Example. See http://stackoverflow.com/help/mcve for a full 
> description. 
> > --- 
> > You received this message because you are subscribed to the Google 
> Groups "sqlalchemy" group. 
> > To unsubscribe from this group and stop receiving emails from it, send 
> an email to sqlalchemy+...@googlegroups.com <javascript:>. 
> > To post to this group, send email to sqlal...@googlegroups.com 
> <javascript:>. 
> > Visit this group at https://groups.google.com/group/sqlalchemy. 
> > For more options, visit https://groups.google.com/d/optout. 
>

-- 
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to