这个算我自己第一次使用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. less中的变量

     [less中的变量]1.声明变量:@变量名:变量值:使用变量:@变量名:[less中变量的类型]1.数字 数字px2.字符串:无引号字符串 red blue 有引号 "haha" ...

  2. CSS input type="number"出现上下箭头时解决方案

    input type="number"时录入内容不可控制,解决方案是在css中添加//火狐input[type=number] {      -moz-appearance:tex ...

  3. App Extensions篇之Share Extension

    转载请注明出处:http://www.cnblogs.com/zhanggui/p/7119572.html 1.前言 这里主要是对App Extension的一些介绍以及详细给大家介绍一下Share ...

  4. Oracle 使用命令导入dmp文件

    若要导入到特定的表空间则需要新建表空间,若不要求,则用已有的,则只需执行下面的步骤 在dos窗口中输入imp 用户名/密码@ip地址:端口号/数据库实例 file='需要导入的dmp文件的路径' fu ...

  5. Oracle系统表实用操作笔记

    1.取得指定用户的所有表名: SQL1: SELECT OWNER AS "对象所有者", OBJECT_NAME AS "表名", OBJECT_ID AS ...

  6. 深入理解 JavaScript(一)

    编写高质量 JavaScript 代码的基本要点 转载:http://wiki.jikexueyuan.com/project/javascript-depth-understanding/start ...

  7. FineReport单元格扩展与父子格设置

    1.描述 在讲述报表设计之前,首先介绍一下FineReport报表制作的几个基本概念,本章节介绍FineReport报表赖以生存的单元格扩展. 扩展,顾名思义,就是由一变多,那么单元格扩展就是指在we ...

  8. nodejs 全局变量和全局对象

    1.全局对象 所有模块都可以调用 1)global:表示Node所在的全局环境,类似于浏览器中的window对象. 2)process:指向Node内置的process模块,允许开发者与当前进程互动. ...

  9. vue mint UI

    vue 与mint  UI 结合开发手机app  html5页面 api  文档   http://mint-ui.github.io/#!/zh-cn

  10. 基于微信小程序的系统开发准备工作

    腾讯推出微信小程序也有一段时间了,在各种行业里面也都掀起一阵阵的热潮,很多APP应用被简化为小程序的功能迅速推出,同时也根据小程序的特性推出各种独具匠心的应用,相对传统的APP来说,微信小程序确实能够 ...