python导入xls数据到db--优化版
import sys
from orator import DatabaseManager
import xlrd dbconfig = {
'mysql': {
'driver': 'mysql',
'host': "",
'database': "",
'user': "",
'password': "",
'port': 3306
}
}
db = DatabaseManager(dbconfig) def loadConfig():
return {
"file": ["f:\\11.xlsx"],
"startRow": 5,
"table": "yy_oph2",
"cleanBeforeImport": 1,
"comitcount": 100,
"map": {
"r": "ophno"
},
"defaultValueMap": {
"userid": 1
}
} def chang26to10(value):
s = value.upper()
re = 0
for x in s:
re *= 26
re += ord(x) - ord('A') + 1
return re if __name__ == '__main__':
importConfig = loadConfig()
# 获取要导入的表名
tableName = importConfig["table"]
comitcount = importConfig["comitcount"]
startRow = importConfig["startRow"]
cleanBeforeImport = importConfig["cleanBeforeImport"]
defaultValueMap = importConfig["defaultValueMap"]
if cleanBeforeImport == 1:
print("确定要清空%s表数据请输入yes?" % (tableName))
flag = sys.stdin.readline().strip()
if flag.upper() == "YES":
db.table(tableName).truncate()
kv = importConfig["map"]
defaultkv = importConfig["defaultValueMap"]
# 支持多文件导入
for fileidx in range(len(importConfig["file"])):
xls = xlrd.open_workbook(importConfig["file"][fileidx])
sheetcount = len(xls.sheets())
# 多sheet导入
for sidx in range(sheetcount):
sheet = xls.sheets()[sidx]
startIdx = startRow
vlist = []
for i in range(startIdx - 1, sheet.nrows):
print("处理第%s行" % i)
dict = {}
for k, v in kv.items():
dict[v] = str(sheet.cell_value(i, chang26to10(k) - 1)).replace("'", "''")
for k, v in defaultkv.items():
dict[k] = v
vlist.append(dict)
# 每50行提交一次
if len(vlist) == comitcount:
db.table(tableName).insert(vlist)
vlist.clear()
continue
if len(vlist) > 0:
db.table(tableName).insert(vlist)
vlist.clear()
print("处理完成")
python导入xls数据到db--优化版的更多相关文章
- MySQL 数据库出现导入xls数据出现1062主从错误错误问题解决方案
今天把xls数据表导入MySQL数据库时发现出现1062错误 ,并且有20-700条数据一直导入不了所以开始找解决方案. 解决方案1: 数据库表设计问题导致相同字段的重复数据不能导入 解 ...
- source命令导入大数据速度慢优化
XX市邮政微商城的项目数据库,300多M,约220万条数据,source命令导入花了20个小时左右,太不可思议. 速度慢原因:220多万条数据,就 insert into 了220多万次,下图: 这是 ...
- python - 接口自动化测试实战 - case1 - 再次优化版
本次优化: 1. 各级分Package 2. 封装[ReadExcel]类 3. 封装[ReadConfig]类 4. 封装[GetLog]类 5. 引入ddt数据驱动测试,优化测试用例代码 ...
- [转载]C#导入XLS数据到数据库
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> ...
- Python 导入CSV、JSON、XML数据
常见的机器可读格式包括: - 逗号分隔值(Comma-Separated Values,CSV)- 制表符分隔值(tab-separated values,TSV)- JavaScript 对象符号( ...
- 关于python导入数据库excel数据时出现102, b"Incorrect syntax near '.15562'.DB-Lib error message 20018, severity 1的问题总结
1.对于在使用python导入sqlsever时,出现102, b"Incorrect syntax near '.15562'.DB-Lib error message 20018, se ...
- Python_实现json数据的jsonPath(精简版)定位及增删改操作
基于python实现json数据的jsonPath(精简版)定位及增删改操作 by:授客 QQ:1033553122 实践环境 win7 64 Python 3.4.0 代码 #-*- encod ...
- Navicat导入.xls等文件失败
一.问题 在学习django的models时,使用Navicat premium导入.xls数据的时候会出现导入失败的原因,即使是换成了csv文件也是失败的,原因是数据库的表有外键,而需要设置外键限制 ...
- python——读取MATLAB数据文件 *.mat
鉴于以后的目标主要是利用现有的Matlab数据(.mat或者.txt),主要考虑python导入Matlab数据的问题.以下代码可以解决python读取.mat文件的问题.主要使用sicpy.io即可 ...
- jmeter导入DB数据再再优化
前言:分享和规定命名规范后,各位测试人员一致认为这样jmeter的jmx文件限制太死,主要体现六方面: 第一:规定了一个jmx文件只能录入一个接口,这样会导致jmx文件很多 第二:导入DB的jmx文件 ...
随机推荐
- 前端面试HTML和CSS总结,这一篇就够了!
一,面试基础 HTML和CSS ps:这俩面试答不上来的,基本就可以回去了,以下是HTML题,一般来说这地方不会出太多题,面试官也不愿意花太多时间在这上面. 1,HTML语义化,如何理解语义化? 让人 ...
- .NET刷算法
BFS模板-宽度优先搜索(Breadth First Search) 1.模板 /// <summary> /// BFS遍历 /// </summary> /// <p ...
- PHP 模仿表单提交
function curl($url,$data,$headers){ $curl = curl_init(); // 启动一个CURL会话 curl_setopt($curl, CURLOPT_UR ...
- oracle常用查看命令
select sum(bytes/1024/1024/1024) from dba_segments; #注:查看表空间大小,除以3个1024后的大小为GB du instance_name(实例 ...
- __init__、__all__
在python中 引用模块包的时候,要先进入此模块的__init__.py中畅游一遍,因此,我们多次需要一个语句的时候,就可以将这些语句写入到__init__.py中: 在使用*号的时候我们可以用__ ...
- JDK动态代理深入剖析
1 基于接口的代理模式 什么是代理? 简单来说,代理是指一个对象代替另一个对象去做某些事情. 例如,对于每个程序员来说,他都有编程的能力: interface Programmable { void ...
- java File类与文件输入/输出流:FileInputStream与FileOutputStream
java File类与文件输入/输出流 File类 File类是java.io包中唯一代表磁盘文件本身的类,该类主要用于文件和目录的创建.文件的查找和文件的删除等. 文件的创建与删除 1.File(S ...
- Devexpress 图表显示数据标签
dev的图标功能非常强大其中有一些设置可以更好的展现出数据 设置Series的标签 series.LabelsVisibility = DevExpress.Utils.DefaultBoolean. ...
- dojo 访问 VS 创建的Json文件 汉字乱码
通过VS创建了一个json文件,直接保存成了文件放到了Web根目录下. 通过dojo的dojo/request访问,返回的汉字都是乱码. 通过以下方案解决. 用记事本把josn文件打开,然后点击另存为 ...
- Service层
package com.neu.service; import java.util.List; import com.neu.bean.User;import com.neu.dao.UserDao; ...