0

如何从字典中将键和值打印到 *.txt 文件?

我试图读取数据并将其打印到 *.txt 文件,但 name.txt 文件为空。

#The code that I have tried
#my_dict is given above
def create_dict():

    with open("name.txt", "w+") as f:
    for key, value in my_dict:
            print(key, value)
            f.write('{} {}'.format(key, value))
4

2 回答 2

1

正如其他答案所指出的那样,您的缩进在您的with陈述中完全是错误的。

泡菜

虽然,如果您的目标是保存字典以供以后使用,那么您最好的选择可能是使用pickle. 如果您的意图是将字典保存为人类可读的格式,这将无法解决问题,但作为数据存储方法会更有效。

import pickle

my_dict = {
    'foo': 'bar',
    'baz': 'spam'
}

# This saves your dict
with open('my_dict.p', 'bw') as f:
    pickle.dump(my_dict, f)

# This loads your dict
with open('my_dict.p', 'br') as f:
    my_loaded_dict = pickle.load(f)

print(my_loaded_dict)  # {'foo': 'bar', 'baz': 'spam'}

杰森

存储效率和可读性之间的折衷可能是json改用。对于不可序列化 JSON 的复杂 Python 对象,它将失败,但它仍然是一种完全有效的存储方法。

import json

my_dict = {
    'foo': 'bar',
    'baz': 'spam'
}

# This saves your dict
with open('my_dict.json', 'w') as f:
    # passing an indent parameter makes the json pretty-printed
    json.dump(my_dict, f, indent=2) 

# This loads your dict
with open('my_dict.json', 'r') as f:
    my_loaded_dict = json.load(f)

print(my_loaded_dict)  # {'foo': 'bar', 'baz': 'spam'}
于 2019-07-08T18:53:59.423 回答
0
def create_dict():

  with open("name.txt", "w") as f:
    for key, value in thisdict.items():
      print(key, value)
      f.write('{} {}'.format(key, value)+"\n")

您应该将您的字典从“dict”重命名为其他名称(高于 thisdict),因为 dict 是 Python 中的一个特殊内置名称。

于 2019-07-08T18:41:30.920 回答