这个算我自己第一次使用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. [leetcode-551-Student Attendance Record I]

    You are given a string representing an attendance record for a student. The record only contains the ...

  2. 短信发送接口被恶意访问的网络攻击事件(四)完结篇--搭建WAF清理战场

    前言 短信发送接口被恶意访问的网络攻击事件(一)紧张的遭遇战险胜 短信发送接口被恶意访问的网络攻击事件(二)肉搏战-阻止恶意请求 短信发送接口被恶意访问的网络攻击事件(三)定位恶意IP的日志分析脚本 ...

  3. RabbitMQ安装|使用|概念|Golang开发

    搬砖的陈大师版权所有,转载请注明:http://www.lenggirl.com/tool/RabbitMQ.html 手册:http://www.rabbitmq.com/getstarted.ht ...

  4. English - Mosquitos

    Smith's house is full of mosquitos. Every night they bite him. He can not sleep because the mosquito ...

  5. win10 Internet Explorer 11 停止工作处理

    win10 Internet Explorer 11 停止工作处理:

  6. JPush简单Java服务端案例实现

    一.激光推送准备工作 1.注册极光推送开发者账号,创建应用: 2.完成推送设置,填写应用名提交生成安装包: 3.扫码安装简单的测试apk,查看应用信息会有AppKey和Master Secret用于推 ...

  7. c/c++ SQLite3的常用使用方法;

    下面测试用的sqlite例子;大家可以参考使用; #include "CppSQLite3.h" Class TestSqlite{ //定义db指针 private: CppSQ ...

  8. Mybatis初学笔记

    MyBatis环境搭建:1.需要mybatis-3.3.0.jar,将该jar包导入web工程的libs文件夹中:2.在src下新建一个mybatis-config.xml文件,mybatis的基本配 ...

  9. 富文本编辑器UEditor自定义工具栏(二、插入图片、音频、视频个性化功能按钮和弹层及自定义分页符)

    导读:本篇将简单探讨插入图片.音频.视频的功能按钮实现方式 传送门:富文本编辑器UEditor自定义工具栏(一.基础配置与字体.背景色.行间距.超链接实现) 一.效果图 1.UEditor自定义工具栏 ...

  10. JDBC之组件封装

    本文所需架包:mysql-connector-java-5.1.7-bin.jar(连接MySQL数据库需要),ojdbc6.jar(连接Oracle数据库需要) 1.JDBC工具类(JDBCUtil ...