首页 > 解决方案 > 如何在 Python 中写入文件字典列表

问题描述

我有以下字典元组:

myListOfDict = {
'READ_NAME': 'NB501050:52:HHMJJBGXY:4:13609:11402:8330', 'CLASS_ID': 3, 'SEQ_ID': 0, 'READ_LEN': 136, 'QVALUES': 'KEOLFC.I?EA;CHEJ?/0CGDBI1GF4D+>-CEB8/J/EFF=HK/0GGGHCFG;GFBH0JG8GG..DGH/BKD?,BHFCFHKF=BH-HFG3BHHGGHFHIBGHFHKDIIJCFGHABGIEHCFFHFHEHEEGQOOO', 'SEQUENCE': 'CACAGGTCTATCACCCTATTAACCCCTCACGGGAGCTCTCCATGCATTTGGTATTTTCGTCTGGGGGGTGTGCACGCGATAGCATTGCGAGACGCTGGAGCCGGAGCACCCTATGTCGCAGTATCTGTCTTTGATT', 'MAPPING_POS': 3, 'DELTA': 0, 'ECIGAR_STRING': '24=C111=', 'ECIGAR_LEN': 8, 'REVERSE_COMP': 1, 'MAPPING_SCORE': 70.0
}, 
{
'READ_NAME': 'NB501050:47:HHMJVBGXY:2:11311:23488:9633', 'CLASS_ID': 3, 'SEQ_ID': 0, 'READ_LEN': 136, 'QVALUES': 'K@KJ<E12I1H0I@BGGHFIJFHFIKFCIKFGGGGH=EGG@FBHFJGGGGG0HGHDEKDBIBHFCFIKFGFHBHFHDBIJGGHFEIBGHFIKDIIJCFGHFBIKFHCFF5GHFIGDGGEFEHJFI6JEJEEHRKMN', 'SEQUENCE': 'CTATTAACCACTCACGGGAGCTCTCCATGCATTTGGTATTTTCGTCTGGGGGGTGTGCACGCGATAGCATTGCGAGACGCTGGAGCCGGAGCACCCTATGTCGCAGTATCTGTCTTTGATTCCTGCCTCATCCTAT', 'MAPPING_POS': 18, 'DELTA': 0, 'ECIGAR_STRING': '131=C4=', 'ECIGAR_LEN': 7, 'REVERSE_COMP': 1, 'MAPPING_SCORE': 70.0
}, 
{...}

对于元组的每个元素(即字典),我只需要将与每个键对应的值打印到文件中。在我正在寻找的内容下方:

NB501050:52:HHMJJBGXY:4:13609:11402:8330 3 0 136 KEOLFC.I?EA;CHEJ?/0CGDBI1GF4D+>-CEB8/J/EFF=HK/0GGGHCFG;GFBH0JG8GG..DGH/BKD?,BHFCFHKF=BH HFG3BHHGGHFHIBGHFHKDIIJCFGHABGIEHCFFHFHEHEEGQOOO ..
NB501050:47:HHMJVBGXY:2:11311:23488:9633 3 0 136 K@KJ<E12I1H0I@BGGHFIJFHFIKFCIKFGGGGH=EGG@FBHFJGGGGG0HGHDEKDBIBHFCFIKFGFHBHFHDBIJGGHFEIBGHFIKDIIJCFGHFBIKFHCFF5GHFIGDGGEFEHJFI6JEJEEHRKMN ...

我实现了以下代码:

with open("filename_t", "w") as f:
 for val in myListOfDict:
    for val1 in val.items():
        for val2 in val1:
           f.write(str(val2) + "  ")
    f.write("\n")

但我没有得到我想要的..

READ_NAME  NB501050:52:HHMJJBGXY:4:13609:11402:8330  CLASS_ID  3  SEQ_ID  0 READ_LEN  136  QVALUES  KEOLFC.I?EA;CHEJ?/0CGDBI1GF4D+>-CEB8/J/EFF=HK/0GGGHCFG;GFBH0JG8GG..DGH/BKD?,BHFCFHKF=BH-HFG3BHHGGHFHIBGHFHKDIIJCFGHABGIEHCFFHFHEHEEGQOOO  SEQUENCE  CACAGGTCTATCACCCTATTAACCCCTCACGGGAGCTCTCCATGCATTTGGTATTTTCGTCTGGGGGGTGTGCACGCGATAGCATTGCGAGACGCTGGAGCCGGAGCACCCTATGTCGCAGTATCTGTCTTTGATT  MAPPING_POS  3  DELTA  0  ECIGAR_STRING  24=C111=  ECIGAR_LEN  8  REVERSE_COMP  1  MAPPING_SCORE  70.0  
READ_NAME  NB501050:47:HHMJVBGXY:2:11311:23488:9633  CLASS_ID  3  SEQ_ID  0 READ_LEN  136  QVALUES  K@KJ<E12I1H0I@BGGHFIJFHFIKFCIKFGGGGH=EGG@FBHFJGGGGG0HGHDEKDBIBHFCFIKFGFHBHFHDBIJGGHFEIBGHFIKDIIJCFGHFBIKFHCFF5GHFIGDGGEFEHJFI6JEJEEHRKMN  SEQUENCE  CTATTAACCACTCACGGGAGCTCTCCATGCATTTGGTATTTTCGTCTGGGGGGTGTGCACGCGATAGCATTGCGAGACGCTGGAGCCGGAGCACCCTATGTCGCAGTATCTGTCTTTGATTCCTGCCTCATCCTAT  MAPPING_POS  18  DELTA  0  ECIGAR_STRING  131=C4=  ECIGAR_LEN  7  REVERSE_COMP  1  MAPPING_SCORE  70.0 

如何避免打印密钥?

标签: python

解决方案


您正在打印键和值,因为您正在使用dict.items()返回键值元组的函数。只需将您的代码更改为:

with open("filename_t", "w") as f:
 for val in myListOfDict:
    for val1 in val.values():
        f.write(str(val1) + "  ")
    f.write("\n")

请注意,字典并不能保证您的键/值/项目顺序。


推荐阅读