这个算我自己第一次使用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. 【Android Developers Training】 28. 将用户带领到另一个应用

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  2. 亲测有效!一种完美动态阈值白平衡算法 Java实现。

    几年没发文了,重新拿起技术! 最近做图像处理,要自动处理颜色平衡问题,很多什么直方图优化之类的,都不完美.所以在博客园找到了这个前辈的文章. http://www.cnblogs.com/Images ...

  3. 获取元素到body/html的距离函数

    获取元素到body的距离: <script> function offsetDis(obj) { var l = 0, t = 0; while(obj) { l = l + obj.of ...

  4. workday2

    今天是实习的第二天 看了一天对smarty模板的介绍,进一步加深了对mvc框架的理解,但是对model认识还是非常的模糊的,可能是之前做的一些项目都是比较小的 对比laravel5,smarty模板显 ...

  5. 钉钉企业应用C#开发笔记之一(免登)

    关于钉钉 钉钉是阿里推出的企业移动OA平台,本身提供了丰富的通用应用,同时其强大的后台API接入能力让企业接入自主开发的应用成为可能,可以让开发者实现几乎任何需要的功能. 近期因为工作需要研究了一下钉 ...

  6. 【ALB学习笔记】基于事件触发方式的串行通信接口数据接收案例

    基于事件触发方式的串行通信接口数据接收案例 广东职业技术学院  欧浩源 一.案例背景 之前写过一篇<基于多线程方式的串行通信接口数据接收案例>的博文,讨论了采用轮询方式接收串口数据的情况. ...

  7. Html 学习

    行内元素和块级元素 行内元素(行级元素) 多个元素会在一行内显示 块级元素 独立成行 注意:块级元素能够嵌套行内元素 <div> <span></span> < ...

  8. HDU 3829 Cat VS Dog / NBUT 1305 Cat VS Dog(二分图最大匹配)

    HDU 3829 Cat VS Dog / NBUT 1305 Cat VS Dog(二分图最大匹配) Description The zoo have N cats and M dogs, toda ...

  9. C# 设计模式之空对象模式

    最近看了不少的书籍和视频等相关资料,决定自己边学习边写一下个人对设计模式的理解,如果有不对的请大家多多指正. 今天先说说我个人觉得最简单的设计模式 -- [空对象模式] 空对象模式可以减少客户端对对象 ...

  10. Django--Uploaded Files以及Handlers

    一.表示已经上传的文件(uploaded files)的类 表示已经上传的文件的类有下面几个: class UploadedFile 在文件上传的期间,实际的文件数据被存储在request.FILES ...