域名申请好怎么做网站,中国企业集成网网址电子商务,做一个交易网站多少钱,焦作网站建设其他的SQL不清楚, pymysql是没有类似函数的。说到框架#xff0c;python常用的几个ORM, 我印象中也没有提供类似写法的。既然没人写#xff0c;而你又在php里觉得这么用趁手#xff0c;不如自己按php的思路实现一个。我自己写了个database类和一些工具函数, 你说的逻辑在我这…其他的SQL不清楚, pymysql是没有类似函数的。说到框架python常用的几个ORM, 我印象中也没有提供类似写法的。既然没人写而你又在php里觉得这么用趁手不如自己按php的思路实现一个。我自己写了个database类和一些工具函数, 你说的逻辑在我这里的代码大概这样:data database(test_db).query_dict(SELECT * FROM table)generic_insert(data, insert_table)insert数据库是在函数中写死的。如果你有多个数据库维护可以考虑再抽象一下在database类中实现。逻辑大概是:# data is a dictdb database(test_db).get_db()db.insert(data, insert_table)db.close()分享自己用的insert函数。from database import database# 依赖pymysqldef generic_insert(data, target_table):# 数据库查出的字段不存在不规则字典的情况# 但如果是mongo过来的不规则字典则最好在插入前做数据清理# 每20000条数据插入一次, 20000条数据预期为2-3M大小# $todo: 根据mysql的driver, 按insert stmt的大小来决定插入, 防止insert过大i 0count 0con database(test_database).get_db()cur con.cursor()key_name data[0].keys()while i len(data):subdata [tuple(x.values()) for x in data[i:(i 20000)]]insert_stmt INSERT INTO {target_table} ({colname}) VALUES ({values}).format(target_tabletarget_table,colname,.join(key_name),values,.join([%s for x in range(len(key_name))]))try:rows cur.executemany(insert_stmt, subdata)count rowscon.commit()except Exception as e:print(INSERT ROWS: {}.format(count))cur.close()con.close()raise ei 20000cur.close()con.close()return count