使用字典 python 中的值创建 excel 文件

Creating excel file using values from a dict python

我有下面给出的代码,我想使用它创建一个 excel file.The 代码是:

#!/usr/bin/python
import xlwt
wb = xlwt.Workbook()
ws = wb.add_sheet('A Test Sheet')
orf = {1: ('793', 804, 12, 0), 2: ('952', 1020, 69, 0), 3: ('1222', 1227, 6, 0), 4: ('1309', 1338, 30, 0), 5: ('1921', 1977, 57, 0), 6: ('2164', 2253, 90, 0), 7: ('2305', 2337, 33, 0)}
ws.write(0, 0, "NO.")
ws.write(0, 1, "Direction")
ws.write(0, 2, "Frame")
ws.write(0, 3, "Start")
ws.write(0, 4, "End")
ws.write(0, 5, "Codon numbers")
ws.write(0, 6, "ORF Sequence")

j = 1
k = 2
for i in orf.items():
    numorf=i[0]
    startorf=orf[numorf][0]
    stoporf=orf[numorf][1]
    lengthorf=orf[numorf][2]
    frameorf=orf[numorf][3]        
    ws.write(j, k, numorf)
    ws.write(j, k, "5 to 3")
    ws.write(j, k, frameorf)
    ws.write(j, k, startorf)  
    ws.write(j, k, stoporf)
    ws.write(j, k, lengthorf)
    ws.write(j, k, "ATGACA...ATGCGA")
    j = j+1
    k = k+1   


wb.save('example.xls')

代码的所有部分都工作正常,但循环中写入字典值的部分不正确并给出以下错误,

for i,j,k in orf.items():
ValueError: need more than 2 values to unpack

我试图解决它但没有成功。

如何在循环中正确管理列号和行号,以便可以使用字典中的值创建文件?

为了清楚起见,我想将 numorf 的值放在 "NO." 以下,“5 到 3” 放在 direction 下面,frameorf 在 "Frame" 下面,startorf 在 "Start" 下面,stoporf 在下面"End"、长度低于 "Codon numbers" 和 "ATGACA...ATGCGA" 低于 "ORF Sequence"。

首先,for 代码片段与错误片段中的不同。

无论如何,我认为你想要的是这样的:

for row,values in orf.iteritems():
    startorf,stoporf,lengthorf,frameorf = values
    ws.write(row, 0, row)
    ws.write(row, 1, "5 to 3")
    ws.write(row, 2, frameorf)
    ws.write(row, 3, startorf)  
    ws.write(row, 4, stoporf)
    ws.write(row, 5, lengthorf)
    ws.write(row, 6, "ATGACA...ATGCGA")

前两行也可以重写为:

for row,(startorf,stoporf,lengthorf,frameorf) in orf.iteritems(): 
    # note the parenthesis, them make the tuple (the value) expand in the respective variables
    # just write to the worksheet as before
    ws.write(row, 0, row) 
    # ...