从 python 字典中,如何将键和值保存到 *.txt 文件
From a python dictionary how do I save the key and value to a *.txt file
如何将字典中的键和值打印到 *.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))
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 中的特殊内置名称。
正如其他答案所指出的,您的 with
语句中的缩进完全错误。
泡菜
不过,如果您的目标是保存字典供以后使用,最好的选择可能是使用 pickle
。如果您的意图是将字典保存为 human-readable 格式,这将无法解决问题,但作为 data-storage 方法会更有效。
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
。对于不可 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'}
如何将字典中的键和值打印到 *.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))
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 中的特殊内置名称。
正如其他答案所指出的,您的 with
语句中的缩进完全错误。
泡菜
不过,如果您的目标是保存字典供以后使用,最好的选择可能是使用 pickle
。如果您的意图是将字典保存为 human-readable 格式,这将无法解决问题,但作为 data-storage 方法会更有效。
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
。对于不可 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'}