python批量读取excel表格数据组成入参调用接口,表格内一列为[]数组格式,读取后变成'[]',调用接口无法识别格式
循环内写了个if条件,但执行一次就不再执行了,如何多次执行循环内判断,或直接正确转换格式
import os
import sys
import json
import io
import xlrd2
import collections
from conf.config_data import *
import requests
import demjson
# import pandas
class Read_excel():
def read(self):
wb = xlrd2.open_workbook("C:/Users/庞淑丽/Desktop/case_1.xls")
sheet = wb.sheet_by_name('case1')
# print(sheet.cell_value(0,0))
# 读取某行数据,返回一个列表
# row = sheet.row_values(1)
# print(row)
# 读取某列数据,返回一个列表
# column = sheet.col_values(0)
# for i in range(0,3):
# if column[i]=='[]':
# column[i]=[]
# print(column)
dict_key = sheet.row_values(0)
# print(dict_key)
# area_dict = collections.OrderedDict() # 建立有序字典
# 循环读取多行数据
for i in range(1, sheet.nrows):
# for j in range(1,sheet.nrows+1):
# print(sheet.nrows)
row = sheet.row_values(i)
# print(row)
if row[i] == '[]':
row[i] = []
# print(row)
# print(row)
url = 'http://123.57.209.78:17075/api/product/list'
data = dict(zip(dict_key, row))
data1 = demjson.encode(data)
TOKEN = 'bearer,eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJpc3N1c2VyIiwiYXVkIjoiYXVkaWVuY2UiLCJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJyb2xlX25hbWUiOiJhZG1pbiIsInBvc3RfaWQiOiIxMTIzNTk4ODE3NzM4Njc1MjAxIiwidXNlcl9pZCI6IjExMjM1OTg4MjE3Mzg2NzUyMDEiLCJyb2xlX2lkIjoiMTEyMzU5ODgxNjczODY3NTIwNiIsInVzZXJfbmFtZSI6ImFkbWluIiwibmlja19uYW1lIjoi566h55CG5ZGYIiwiZGV0YWlsIjp7InR5cGUiOiJ3ZWIifSwidG9rZW5fdHlwZSI6ImFjY2Vzc190b2tlbiIsImRlcHRfaWQiOiIxMTIzNTk4ODEzNzM4Njc1MjAxIiwiYWNjb3VudCI6ImFkbWluIiwiY2xpZW50X2lkIjoiYWRtaW4iLCJleHAiOjE2OTQ0ODg2MDEsIm5iZiI6MTY5NDQ4NTAwMX0.ZqZgTDz7ohWM8EttqAVWmKMkayfg7yj_2ZpYXjUwoto'
HEADERS = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36',
'Zz-Auth': TOKEN,
'Content-Type': 'application/json'
}
res = requests.post(url, data=data1, headers=HEADERS)
# print(data)
print(data)
print(res.json())
# data=json.dumps(dict_key,row)
# print(dict(zip(dict_key,row)))
if __name__ == "__main__":
Read_excel().read()
【相关推荐】
刚才上面说了Excel的硬伤是不支持大数据量,对金融、零售等行业来说,一个数据库中的数据都是百万级的,记得之前有次领导让我分析季度销售额下降的原因,我找到数据管理员要来了600多万行的订单明细数据,用Excel打开都等了好久,好不容易打开了,后面的编辑步骤才是真正要跨的坎,每点一次等待三秒,效率太低了,以至于后面想做的分析步骤很难施展。
在支持大数据量性能上,FineBI直接秒杀Excel,它采用的是Spider计算引擎,用户可以根据数据量、实时性要求、使用频次等,自由选择实时或抽取的方式,支持亿级以内的数据展示和编辑,相同行数的数据表展示速度相对Excel快很多,数据分析效率高。
用eval()
它可以将字符串当成有效的表达式来求值,并返回计算结果
所谓表达式就是:eval这个函数会把里面的字符串参数的引号去掉,把中间的内容当成Python的代码,eval函数会执行这段代码并且返回执行结果
简而言之就是 它能帮你把 '[]' 这个字符串类型转变为 [] 列表类型,你可以用type输出看看