我将数据保存在字典中,例如:
{'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 = []
,所以你可以摆脱它。