我有一个问题是将字典数据解析为excel(" .xls"),其中字典中的所有值都不会出现在我的excel文件中(" testbk1.xls")。我一直试图找出问题的原因并且已经有一段时间了。然后决心寻求进一步的洞察...... **有人可以突出问题所在吗?**
预期的Excel输出
产生的Excel输出
代码:
import xlwt
book = xlwt.Workbook()
sheet1 = book.add_sheet('Sample1', cell_overwrite_ok=True)
data = {'10.110.10.10': [('ar01', 'MODULE', '', 'Modules', 'Catalyst 6500 Series Supervisor Modules', 'PPL94941MG', '31-1-2018'), ('ar01', 'MODULE', '', 'Modules', 'TM', 'FQW10470NTF', '31-3-2018'), ('ar01', 'MODULE', '', 'Modules', 'TM', 'FNS120010WA', '31-3-2018')], '110.110.1.1': [('ar02', 'MODULE', '', 'Modules', 'Catalyst 6500 Series Supervisor Modules', 'RAL1138ZEC1', '31-1-2018'), ('ar02', 'MODULE', '', 'Modules', 'TM', 'OPA10233U08', '31-3-2018'), ('ar02', 'MODULE', '', 'Modules', 'TM', 'HJG1267U9U4', '31-3-2018')], '10.110.1.97': [('EEE-RT', 'MODULE', '', 'Modules', 'TM', 'WGC4556U5UA', '31-3-2018')], '10.110.1.225': [('SSS-IGW-RT-1', 'MODULE', 'MM4', 'Modules', 'TM', 'HJM151RTY6A', '31-3-2018'), ('SSS-IGW-RT-1', 'MODULE', 'MM4', 'Modules', 'TM', 'TTTUI909E7', '31-3-2018'), ('SSS-IGW-RT-1', 'MODULE', 'MM4', 'Modules', 'TM', 'MMM1WEF7813', '31-3-2018')], '10.110.172.2': [('SSS-IGW-RT-2', 'MODULE', 'MM4', 'Modules', 'TM', 'AGM61CGBUDU', '31-3-2018'), ('SSS-IGW-RT-2', 'MODULE', 'MM4', 'Modules', 'TM', 'RYUYUH3L9E9', '31-3-2018'), ('SSS-IGW-RT-2', 'MODULE', 'MM4', 'Modules', 'TM', 'YUI23RT9EW', '31-3-2018')]}
def write_to_file():
header = ['IP Address', 'Host Name', 'Equipment Type', 'DC', 'Product Type', 'Product Family', 'Serial Number','Hardware EoS']
n = 0
for i in header:
sheet1.write(0, n, i)
n += 1
for col, caption in enumerate(data, 1):
sheet1.write(col, 0, caption)
for row, dt in enumerate(data[caption], 1):
for col_no, q in enumerate(dt):
if not q:
q = 'NA'
if col_no == 0:
sheet1.write(row, col_no, caption)
sheet1.write(row, col_no+1, q)
else:
sheet1.write(row, col_no+1, q)
book.save("testbk1.xls")
return
write_to_file()
答案 0 :(得分:0)
谢谢大家。发现行被覆盖,因为行值没有从“for row,dt in enumerate(data [caption],1)”更改。
我引入了“row_cnt”变量来增加行号,而不是使用“for row,dt in enumerate(data [caption],1)”中的“row”索引:“。这解决了它。!
def write_to_file():
header = ['IP Address', 'Host Name', 'Equipment Type', 'DC', 'Product Type', 'Product Family', 'Serial Number','Hardware EoS']
n = 0
for i in header:
sheet1.write(0, n, i)
n += 1
row_cnt = 1
for col, caption in enumerate(data, 1):
sheet1.write(col, 0, caption)
for row, dt in enumerate(data[caption], 1):
for col_no, q in enumerate(dt):
if not q:
q = 'NA'
if col_no == 0:
sheet1.write(row_cnt, col_no, caption)
sheet1.write(row_cnt, col_no+1, q)
else:
sheet1.write(row_cnt, col_no+1, q)
row_cnt += 1
book.save("testbk1.xls")
return