[英]How to write a dictionary to tab-separated file without using Pandas?
如何將以下字典寫入以鍵為列標題的制表符分隔文件?
到目前為止的代碼:
import csv
test_dict = {"A": 1, "B": 2, "C": 3}
with open("output_file.txt", 'w') as f:
writer = csv.DictWriter(f, fieldnames = list(test_dict.keys()), delimiter = '\t')
writer.writeheader()
writer.writerows(test_dict)
我不斷收到錯誤
AttributeError: 'str' object has no attribute 'keys'
與writerows()
函數有關。
我盡量不使用 Pandas。
DictWriter.writerows
需要可迭代的字典。 你只給它一本字典——所以它試圖展開它。
您可以通過將test_dict
包裝在列表中來解決它
writer.writerows([test_dict])
或者使用writerow
方法
功能writerows
預計的列表dicts
和你逝去只是一個dict
。
修改代碼如下:
import csv
test_dict = {"A": 1, "B": 2, "C": 3}
with open("output_file.txt", 'w') as f:
writer = csv.DictWriter(f, fieldnames = list(test_dict.keys()), delimiter = '\t')
writer.writeheader()
writer.writerows([test_dict]) #passing an list of dicts
您可以使用函數writerow
而不是writerows
將單行寫入文件。
import csv
test_dict = {"A": 1, "B": 2, "C": 3}
with open("output_file.txt", 'w') as f:
writer = csv.DictWriter(f, fieldnames = list(test_dict.keys()), delimiter = '\t')
writer.writeheader()
writer.writerow(test_dict) #passing single row
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.