我只想将字典值写入文本文件的行方式。我可以使用以下方法将整个字典写入文件:
log_disk={}
log=open('log.txt','w')
log.write(str(log_disk))
log.close()
任何帮助将不胜感激。此外,我想避免在写入文件时具有值“空”的那些键。
答案 0 :(得分:6)
然后循环遍历值:
with open('log.txt','w') as log:
for value in log_disk.values():
log.write('{}\n'.format(value))
答案 1 :(得分:0)
您可以将数据转储为JSON,而不会将JSON数据格式化为一行。
不要忘记附加换行符:
>>> import json
>>> data = {}
>>> with open(fname, "a") as f:
... json.dump(data, f)
... f.write("\n")
...
尝试使用其他数据:
>>> data = {"a": "aha", "b": "bebe"}
>>> with open(fname, "a") as f:
... json.dump(data, f)
... f.write("\n")
...
它不一定是字典,列表也在起作用:
>>> data = range(10)
>>> data
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> with open(fname, "a") as f:
... json.dump(data, f)
... f.write("\n")
...
>>> with open(fname) as f:
... for line in f:
... print json.loads(line)
...
{}
{u'a': u'aha', u'b': u'bebe'}
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
答案 2 :(得分:0)
你只需要将 log_disk.values() 转换成一个列表就可以直接写入
with open(filename) as openfile:
json.dump(list(log_disk.values()), file)