我将数据保存在字典中,例如:

{'CTY': '897', 'LC': '7W', 'DIV': '7W', 'MAJ': '018', 'MINOR': '0100', 'SMIN': '0010', 'INS_TIME_STAMP': datetime.datetime(2016, 3, 8, 17, 37, 40, 897812)}

我想将密钥复制到txt中,然后复制值。我的预期结果是:

CTY LC DIV MAJ MINOR SMIN INS_TIME_STAMP
897 7W 7W  018 0100  0010 2016-03-08 17:37:40.897812

您可以注意到该值始于与键相同的列。

这是我到目前为止所尝试的:

with open('Archivo.txt', 'a') as a:
        to_write = []

        filtered_dict = {key: value for key, value in query_result.items() if not isinstance(key, int)}
        column_names = [key for key in filtered_dict.keys()]
        columns = " ".join(column_names)
        a.write(columns + '\n')

        result_values = [str(value) for value in filtered_dict.values()]
        values = " ".join(result_values)
        a.write(values + '\n')

结果如下:

CTY LC DIV MAJ MINOR SMIN INS_TIME_STAMP
897 7W 7W 018 0100 0010 2016-03-08 17:37:40.897812
分析解答

如果您所追求的是txt文件中的人类可读性,则可以将'\t'string文字用于ASCII水平制表符。请注意,某些值可能太长,一个选项卡可能不足以填充列。

columns = "\t".join(column_names) <br/>  values = "\t".join(result_values)

您还可以通过计算键和值的长度之间的差异来使用空格,但是您需要循环它们。 (.join()做同样的事情,它只是抽象的)

ps:你似乎没有使用to_write = [],所以你可以摆脱它。