使用字典 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)
# ...
我有下面给出的代码,我想使用它创建一个 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)
# ...