这个算我自己第一次使用python语言实现 一个功能
一、首先我们先要代码实现如何从excel上读取数据python实现还是比较简单的
1.我使用的是xlrd模块,我们先要安装这个包,这样我们才可以使用它
安装方法:
a.可以直接把文件拷贝到 $python_dir/Lib,这方法我试了一下不可以,我也不知道为什么
b.我下载了xlrd模块,在目录下运行了python setup.py install,成功了
另外还有很多方式,你可以自己去百度搜索
2.就可以代码实现了
 import xlrd
class ExcelHandleImpl(object):
'''
classdocs
''' def __init__(self):
'''
Constructor
'''
self.filename = None
#打开excel
def open_excel(self,filename):
try:
data = xlrd.open_workbook(filename)
return data
except Exception,e:
print str(e)
#根据sheet名字获取信息
def excel_table_byname(self,filename,colnameindex=0,by_name=u'merchant'):
# 实例化类
bswi = ExcelHandleImpl()
data = bswi.open_excel(filename)
table = data.sheet_by_name(by_name)
#得到表格行数
nrows = table.nrows
#得到第一行的数据
colnames = table.row_values(colnameindex)
print colnames
list = []
for rownum in range(1,nrows):
row = table.row_values(rownum)
if row:
app = {}
#组成字典
for i in range(len(colnames)):
app[colnames[i]] = row[i]
list.append(app)
return list
这段代码我也参考网上的一位大神的,要是你搜关于python实现excel应该可以搜到哪位大神的,他还有另外几种方式的实现
调用这段代码:

 excel = ExcelHandleImpl()
tables = excel.excel_table_byname('C:\Desktop\datasetup.xlsx',0,'goods')
我主要想说一下读取的字符串和接口的传参,这边主要我是第一次实现所以遇到了序列化的问题
1.比如我们需要的传参是这样的:{message: {"merchantstatus": "1", "alipayaccount": "", "contactphone": "33", "merchantname": "Test", "remark": "Test", "memberstatus": "0", "alipayname": "", "contactaddress": "Test", "principal": "SDET-Test"}}
a.我们序列化的内容应该是message之后的内容,先把取出来的表格内容序列化,之后再与message拼装

excel = ExcelHandleImpl()
tables = excel.excel_table_byname('C:\Desktop\datasetup.xlsx')
for row in tables:
  print row
  row = json.dumps(row)
  row = {"message":row}
b.你看到了请求的数据都是字符串的形式,要是你直接在表格填写1,这样你读取出来的内容会是数据,还会带有小数据点,所以我都是把把表格中数据的单元格的格式转化成文本格式,这个读出来就是字符串的形式了,还有要是你就要数据的话,但是数据不包含小数点,这时候你需要在代码中实现转化
row['merchantstatus'] = eval(row['merchantstatus'])
经过这样的转化就不会包含小数点了
c.还有一种就是传的参数是null,但是python没有null,我们之前有提到我们是将表格的数据以字典的形式,这时候你就可以利用key,修改vlue值,
row['alipayaccount'] = ''
改成这种形式,请求给后台就会变成null,是什么原因我也不知道,要是哪位知道的话也可以告诉我。
d.还有一种就是参数中包含数组,因为我们从表格中获取的话,取出来的都是字符串,
我也进行了转化
row['merchantstatus'] = eval(row['merchantstatus'])

e.要是请求参数是以这种方式的:id:“1234”,name:“三生三世十里桃花”

是将冒号后面的字符串序列 话

id = ""
name = ""
data = {"id":json.dumps(id),"name":json.dumps(name)}

要是有更好的建议可以告诉我!!!!

 
 
 
 

在实现从excel中读取数据作为接口参数遇到的问题的更多相关文章

  1. 从Excel中读取数据(python-xlrd)

    从Excel中读取数据(python-xlrd) 1.导入模块 import xlrd 2.打开Excel文件读取数据 data = xlrd.open_workbook('excelFile.xls ...

  2. 从Excel中读取数据并批量写入MySQL数据库(基于MySQLdb)

    一.Excel内容如下,现在需要将Excel中的数据全部写入的MySQL数据库中: 二.连接MySQL的第三方库使用的是“MySQLdb”,代码如下: # -*- coding:utf-8 -*-im ...

  3. Badboy - 从excel中读取数据

    参考: http://leafwf.blog.51cto.com/872759/1119161 http://www.51testing.com/html/00/130600-1367743.html ...

  4. C#从Excel中读取数据为空

    将HDR设置为YES,IMEX设置为1即可. OleDbConnection objConn = new OleDbConnection("Provider=Microsoft.ACE.OL ...

  5. 从Excel中读取数据并批量写入MySQL数据库(基于pymysql)

    一.Excel内容时这样的: 二.最初的代码是这样的: # -*- coding:utf-8 -*-import pymysqlfrom xlrd import open_workbook class ...

  6. 用python在excel中读取与生成随机数写入excel中

    今天是我第一次发博客,就关于python在excel中的应用作为我的第一篇吧. 具体要求是:在一份已知的excel表格中读取学生的学号与姓名,再将这些数据放到新的excel表中的第一列与第二列,最后再 ...

  7. NOPI读取模板导出(Excel中追加数据)

    在Controller里,我们定义一个FileResult的Action,返回值是一个文件形式被浏览器下载下来. [HttpGet] public FileResult ExportProductLi ...

  8. sql 读取excel中的数据

    select 列名 as 字段名 from openBowSet('MSDASQL.1','driver=Microsoft Excel Driver(*.xls);dbq=文件存放地址','sele ...

  9. SpringBoot(十三)_springboot上传Excel并读取excel中的数据

    今天工作中,发现同事在整理数据,通过excel上传到数据库.所以现在写了篇利用springboot读取excel中的数据的demo.至于数据的进一步处理,大家肯定有不同的应用场景,自行修改 pom文件 ...

随机推荐

  1. Gradle学习笔记之Groovy

    [TOC] Gradle 的核心功能是由Java实现. 在这些功能之上, 有一个使用动态编程语言Groovy编写的领域特定语言(DSL). Gradle的构建脚本build.gradle和settin ...

  2. android权限(permission)大全

    权限添加位置: 权限代码: 1.android.permission.WRITE_USER_DICTIONARY允许应用程序向用户词典中写入新词 2.android.permission.WRITE_ ...

  3. servlet+jsp导入Excel到mysql数据库

    package khservlet; import java.io.FileInputStream;import java.io.IOException;import java.io.InputStr ...

  4. 学习java 的经验

    一.学习java首先应该对他有个全局的看法 ,他由几部分组成 1.java 的基础语法 2.使用Swing 来做桌面应用,可做嵌入式开发. 3.JDBC数据库的链接 4.网络编程,主要是socket编 ...

  5. Linux程序设计之shell程序设计

    看了<linux程序设计(第4版)>(作者:Neil Matthew ,Richard Stones ,陈建 ,宋健建译).做个笔记,以备后面查看. 首先,清楚几个概念. shell编程属 ...

  6. java后端程序员1年工作经验总结

    java后端1年经验和技术总结(1) 1.引言 毕业已经一年有余,这一年里特别感谢技术管理人员的器重,以及同事的帮忙,学到了不少东西.这一年里走过一些弯路,也碰到一些难题,也受到过做为一名开发却经常为 ...

  7. 数据结构3——浅谈zkw线段树

    线段树是所有数据结构中,最常用的之一.线段树的功能多样,既可以代替树状数组完成"区间和"查询,也可以完成一些所谓"动态RMQ"(可修改的区间最值问题)的操作.其 ...

  8. Java 逆变与协变的名词说明

    最近在研究Thinking in Java的时候,感觉逆变与协变有点绕,特意整理一下,方便后人.我参考于Java中的逆变与协变,但是该作者整理的稍微有点过于概念化,我在这里简单的说一下 我对于协变于逆 ...

  9. Django学习(三)---Models(ORM框架)

    1) Django 中Models是与数据库相关的,与数据库相关的代码一般写在 models.py中,Django 支持 sqlite3, MySQL, PostgreSQL等数据库,只需要在sett ...

  10. java字符串,包,数组及空心正方形,菱形的实例

    一.数组:相同类型的多个对像引用类型:所有的类,接口,数组,int[] ints(变量名) = new int[3]new:指的是在内存空间重新开辟一块区域 String s1 = "abc ...