下面的代码在使用 Python 2.7 时有效,但在使用 Python 3.5 时引发 StatementError。我还没有在网上找到一个很好的解释。
在这种情况下,为什么 sqlalchemy 不接受简单的 Python 3 字符串对象?有没有更好的方法将行插入表中?
from sqlalchemy import Table, MetaData, create_engine
import json
def add_site(site_id):
engine = create_engine('mysql+pymysql://root:password@localhost/database_name', encoding='utf8', convert_unicode=True)
metadata = MetaData()
conn = engine.connect()
table_name = Table('table_name', metadata, autoload=True, autoload_with=engine)
site_name = 'Buffalo, NY'
p_profile = {"0": 300, "1": 500, "2": 100}
conn.execute(table_name.insert().values(updated=True,
site_name=site_name,
site_id=site_id,
p_profile=json.dumps(p_profile)))
add_site(121)
Run Code Online (Sandbox Code Playgroud)
编辑该表以前是用这个函数创建的:
def create_table():
engine = create_engine('mysql+pymysql://root:password@localhost/database_name')
metadata = MetaData()
# Create table for updating sites.
table_name = Table('table_name', metadata,
Column('id', Integer, …Run Code Online (Sandbox Code Playgroud)