python SQLAlchemy & pandas read_sql_query 日本語の処理について
初めまして、こんにちは
sqlaichemyとpandas.read_sql_queryにてmysqlのlike機能で
日本語のキーワードを選択したいですが、どうやって動けますか?
英語のキーワードを下記のように選択すると、動けるんですが
statement = "SELECT * FROM orderitem WHERE item_description like '%example%'"
df = pd.read_sql_query(text(statement), engine)
日本語のキーワードを使うと、エラーが出てます。
statement = "SELECT * FROM orderitem WHERE item_description like '%日本語%'"
df = pd.read_sql_query(text(statement), engine)
エラー:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 55: ordinal not in range(128)
ps- このquery "SELECT * FROM orderitem WHERE item_description like '%日本語%'" はterminalで動けるんですが、python で作業するとエラーが出てしまいます。
私のコード:
import pymysql
import os
import pandas as pd
from sqlalchemy import create_engine, text
db = pymysql.connect(db=db, user='root', passwd=passwd, charset='utf8', unix_socket="/var/run/mysqld/mysqld.sock", local_infile=True)
cursor = db.cursor()
cursor.execute("SET NAMES utf8")
engine = create_engine('mysql+pymysql://root:passwd@localhost:4406/db?charset=utf8')
statement = "SELECT * FROM orderitem WHERE item_description like '%日本語%'"
df = pd.read_sql_query(text(statement), engine)
色々調べたんですenginer とconnetionの方でencoding = utf-8を追加してもうまく解決できません..
よければ教えていただけると嬉しいです。
ありがとうございます。