Python:我的目录没有给出单独的值输出

时间:2018-02-01 20:37:50

标签: python excel python-2.7

我创建了一个代码,通过Python中的两个目录中的.xlrd导入数据。

代码:

$ python ptest.py
$ python -i ptest.py
Traceback (most recent call last):
  File "ptest.py", line 3, in <module>
    sys.exit(0)
SystemExit: 0

当我打开两个目录(类别或术语)中的一个时,它会显示一个值列表。

  
    

打印(类别[I])     到目前为止,非常好。

  

但是,当我尝试打开个别值时

  
    

打印(类别[ “2”])     ,它会一直给我一个错误&gt;&gt;

  
import xlrd

#category.clear()
#term.clear()

book = xlrd.open_workbook("C:\Users\Koen\Google Drive\etc...etc..")
sheet = book.sheet_by_index(0)

num_rows = sheet.nrows

for i in range(1,num_rows,1):
    category = {i:( sheet.cell_value(i, 0))}
    term = {i:( sheet.cell_value(i, 1))}

密钥确实已编号(由i确定)。 我已经尝试过[] {}“”“等等。没有任何作用。

由于我稍后在代码中需要这些值,我想知道键错误的原因是什么。

先谢谢你一起来看看!

1 个答案:

答案 0 :(得分:0)

首先,你在for循环的每次迭代中重新分配类别和术语,这样字典在每次迭代时总会有一个键,最后一个索引结束,所以如果我们的表有100行,那么dict将只有密钥99。要解决这个问题,您需要在循环外定义字典并在循环内分配键,如下所示:

category = {}
term = {}
for i in range(1, num_rows, 1):
    category[i] = (sheet.cell_value(i, 0))
    term[i] = (sheet.cell_value(i, 1))

第二,使用for i in range(1, num_rows, 1):定义密钥的方式,它们是整数,因此您必须访问字典密钥,如category[1]。要使用字符串键,您需要使用category[str(i)]进行转换。

我希望澄清这个问题。