python xlrd索引数组以矩阵格式超出范围

时间:2017-08-03 19:42:11

标签: python matrix xlrd index-error

我想使用列和行标题的串联作为键来构建一个dict。在此格式中,单元格(0,0)为空白

enter image description here

我希望脚本从第二列标题开始,将其字符串值连接到第一列中的第二行值,然后连接第二行,依此类推,直到没有更多行为止。如果列1 row [i]中的相应单元格值为空,则应跳过创建密钥。如果它不是空白,则应该使用相应的单元格值作为其值。

因此,不会创建0.5_20.00;和.05_32.00:9.00将被创建

一旦到达最后一行,它应该移动到第三列(第[2]栏)并执行相同的操作,直到没有更多的列。

import xlrd

#make dict from excel workbook, size and frequency

serParams = {}
wb = xlrd.open_workbook(r"S:\Shared\Service_Levels.xlsx")
sh = wb.sheet_by_index(0)

# Get row range value

row_range_value = 0
for i in sh.col(0):
    row_range_value += 1
row_range_value = row_range_value -1
print row_range_value

# Get column range value

column_range_value = 0
for i in sh.row(0):
    column_range_value += 1
column_range_value = column_range_value - 1
print column_range_value

# build the dict by using concatenated column and row headers as keys and
# corresponding values as key value

for i in range(0,column_range_value,1):
    for j in range(0,row_range_value,1):
        if sh.cell(i+1,j+1).value != '':
            key = str(sh.cell(i+1,j).value) +"_"+str(sh.cell(i,j+1).value)
            serParams[key] = sh.cell(i+1, j+1).value

我的数据格式可能导致索引错误,因为一旦循环到达表的末尾,范围超过了i + 1和j + 1的表数据?我试图通过从范围值中减去1来解决这个问题,但我继续得到索引错误。

0 个答案:

没有答案