小编hau*_*ren的帖子

sqlalchemy 插入 - 没有编码的字符串参数

下面的代码在使用 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)

sqlalchemy python-3.x pymysql

4
推荐指数
1
解决办法
6575
查看次数

标签 统计

pymysql ×1

python-3.x ×1

sqlalchemy ×1