我在工作簿中有多个Excel工作表,其名称如sheet1,sheet2,sheet3,我正在使用 Headers 作为键将每个工作表中的数据转换为字典 . 但是现在我想创建一个嵌套字典,我在其中添加工作表名称作为上述每个字典的关键字 . 我的表有多个这种形式的表格:Sheet1
IP Address prof type
xx.xx.xx abc xyz
xx.xx.xx efg ijk
Sheet2中
IP Address prof type
xx.xx.xx abc xyz
xx.xx.xx efg ijk
现在我尝试这样:
from xlrd import open_workbook
book = open_workbook('workbook.xls')
sheet = book.sheet_by_index(0)
sheet_names = book.sheet_names()
# reading header values
keys = [sheet.cell(0, col_index).value for col_index in range(sheet.ncols)]
dict_list = []
for row_index in range(1, sheet.nrows):
d = {keys[col_index]: sheet.cell(row_index, col_index).value
for col_index in range(sheet.ncols)}
dict_list.append(d)
print (dict_list)
打印这个:
[{'IP Address': 'xx.xx.xx', 'prof': 'abc', 'type': 'xyz'}, {'IP Address':
'xx.xx.xx', 'prof': 'efg', 'type': 'ijk'}]
what I need is :
[{'Sheet1':{'IP Address': 'xx.xx.xx', 'prof': 'abc', 'type': 'xyz'}, {'IP
Address': 'xx.xx.xx', 'prof': 'efg', 'type': 'ijk'}},
{'Sheet2':{'IP Address': 'xx.xx.xx', 'prof': 'abc', 'type': 'xyz'}, {'IP
Address': 'xx.xx.xx', 'prof': 'efg', 'type': 'ijk'}},
]
我在将工作表名称添加为工作簿中多个工作表的键时遇到问题 .
任何帮助将不胜感激 .
1 回答
此代码遍历每个工作表,并附加到'fulll_dict'的sheet_name,然后是您的代码已经为每个工作表返回的内容 . 名称的获取是参考“How to get excel sheet name in Python using xlrd”完成的