两部分问题。
首先,我怎样才能改变这种情况(我已尝试使用'for',但我无法弄明白),以便它可以保存; '键值'而不是'{key:value}'。
with open("phonebook.txt", "w") as x:
json.dump(a, x)
其次,如何使用用户输入从文件中删除。 我看不到改变这个从文件中删除而不是字典'a'的方法;
name = input("enter name of contact you want to delete: ")
if name in a:
del a[name]
EDIT。这就是我现在所做的,但它没有做什么预期(我也尝试添加.readlines,其中x只是错误。
def save(a):
with open("phonebook.txt", "w") as x:
for k in a:
json.dump(str(k)+" "+str(a[k]), x)
def load():
a = {}
with open("phonebook.txt", "r") as f:
for l in f:
a[l[0]] = l[1]
print (a)
def save工作正常(据我所知,无论如何)
我也试过c = l.split()和[c [0]] = c [1]。只是不想工作!
答案 0 :(得分:1)
这不是JSON格式。如果您需要其他东西,请不要使用它。使用纯文本文件,例如
with open("phonebook.txt","w") as file :
for key, value in a.items() :
file.write(str(key)+" "+str(value))
看起来您已将文件加载到字典a
中。在这种情况下,您只需要在删除后将字典a
写回文件。如果您尚未将文件加载到字典中,则可以使用:
a= {}
with open("phonebook.txt") as file :
for line in file.readlines() :
content= line.split()
a[content[0]]= content[1]