我正在使用KEGG下载基因组数据并将其写入文件。总共有26个文件,其中一些文件包含字典'COMPOUND'。我想将它们分配给CompData,并将它们写入输出文件。我试着把它写成一个if True语句,但这是行不通的。
# Read in hsa links
hsa = []
with open ('/users/skylake/desktop/pathway-HSAs.txt', 'r') as file:
for line in file:
line = line.strip()
hsa.append(line)
# Import KEGG API Bioservices | Create KEGG Variable
from bioservices.kegg import KEGG
k = KEGG()
# Data Parsing | Writing to File
# for i in range(len(hsa)):
data = k.get(hsa[2])
dict_data = k.parse(data)
if dict_data['COMPOUND'] == True:
compData = str(dict_data['COMPOUND'])
nameData = str(dict_data['NAME'])
geneData = str(dict_data['GENE'])
f = open('/Users/Skylake/Desktop/pathway-info/' + nameData + '.txt' , 'w')
f.write("Genes\n")
f.write(geneData)
f.write("\nCompounds\n")
f.write(compData)
f.close()发布于 2017-02-18 03:18:11
我想我是说
if dict_data['COMPOUND'] == True:您(错误地)测试了字符串键'COMPOUND'在dict_data中的存在。在这种情况下,你想要的是
if 'COMPOUND' in dict_data:此外,请注意,如果键不存在,则不会发生变量compData的定义,这将在试图写入其值时引发错误。这意味着无论发生什么事情,你都应该定义它。
compData = str(dict_data.get('COMPOUND', 'undefined'))上面的代码行意味着,如果键存在,它将得到它的值,如果不存在,它将得到'undefined'。请注意,您可以选择所需的替代值,甚至不提供任何值,这将导致默认情况下的None。
https://stackoverflow.com/questions/42310637
复制相似问题