
单纯从数据结构上来讲的话,字典的数据结构是散列,也就是哈希表,它是无序的,而列表的数据结构是链表,是有序的,所以想把字典转换成列表并且保持顺序不变,是不可行的。
题主可以使用OrderedDict(Python 27+)有序字典,OrderedDict是dict的子类,它记住了内容添加的顺序。
另外如果想把字典的key转换成列表,使用dictkeys()就可以了。
1确定方案
eg excel data 文件 -> oracle data 文件 (其实导入工具已经至此某些excel格式,不需要python再转换)
2了解中间文件格式,或者定出中间sql文件规约
3选型技术,找python库 google python+excel,选定导入方式
4 开工写code
需要使用xlrd和MySQLdb库,可自行百度下载。
#coding:utf-8
import xlrd
import MySQLdb
data=xlrdopen_workbook(r'F:\test\baseParamxls') #读取表格db="测试" #需要 *** 作的数据库
conn= MySQLdbconnect(
host='localhost',
port = 3306,
user='root',
passwd='123456',
charset='utf8'
) #连接mysql
cur=conncursor()
curexecute("drop database if exists "+db)curexecute("create database "+db)
connselect_db(db) #初始化数据库
sheet_names=datasheet_names()
for sheet_name in sheet_names:
sheet=datasheet_by_name(sheet_name)
row_data=sheetrow_values(0)
row_data=' varchar(256) DEFAULT NULL, 'join(row_data)row_data=row_data+' varchar(256) DEFAULT NULL'
curexecute('create table '+sheet_name+'('+row_data+')') #数据库中创建表格ss=''
for index in range(sheetncols):
ss=ss+'%s, '
ss=ssrstrip(', ')
sql="insert "+ sheet_name+ " values(" +ss +")"param=[]
for index in range(1,sheetnrows):
row_values=sheetrow_values(index)
paramappend(row_values)
curexecutemany(sql,param) #插入数据
conncommit()
curclose()
connclose() #释放数据连接
import xlwt
f = xlwtWorkbook() #创建工作簿
sheet1 = fadd_sheet(u'sheet1',cell_overwrite_ok=True) #创建sheet
l_=[1,2,3,4,5]
for i in range(len(l_)):
sheet1write(0,i,i)#表格的第一行开始写。第一列,第二列。。。。
#sheet1write(0,0,start_date,set_style('Times New Roman',220,True))
fsave('textxls')#保存文件
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)