如何为保存在Python文本文件中的dict分配变量
作为一名初学者,我正在尝试使用保存在名为contacts.txt的文本文件中的dict编写一个联系人列表程序,以将数据存储在中。为了更新我的联系人dict,我可以使用contacts.update(dict2),dict2是新联系人的输入数据。我尝试了下面的代码,但不起作用:如何为保存在Python文本文件中的dict分配变量,python,dictionary,text,Python,Dictionary,Text,作为一名初学者,我正在尝试使用保存在名为contacts.txt的文本文件中的dict编写一个联系人列表程序,以将数据存储在中。为了更新我的联系人dict,我可以使用contacts.update(dict2),dict2是新联系人的输入数据。我尝试了下面的代码,但不起作用: new_entry = {} # contacts = {} contacts = contacts_file = open("contacts.txt", 'a+') def data(): cell =
new_entry = {}
# contacts = {}
contacts = contacts_file = open("contacts.txt", 'a+')
def data():
cell = input("Enter cell number: ")
first = input("Enter first name: ")
last = input("Enter last name: ")
new_entry = {cell: (first, last)}
print("NEW ENTRY:" + str(new_entry))
data()
contacts.update(new_entry)
print("CONTACTS: " + str(contacts))
def write_to_file():
contacts_file = open("contacts.txt", 'w')
contacts_file.write(str(contacts))
contacts_file.close()
write_to_file()
我的想法是将变量“contacts”分配给保存在文本文件中的dict。最初,dict将为空,但每次输入新的联系人详细信息时,它将填充新数据
但我得到一个错误:AttributeError:“\u io.TextIOWrapper”对象在我运行程序时没有属性“update”
显然,问题在于:
contacts = contacts_file = open("contacts.txt", 'a+')
我想将文本文件上的字典分配给变量contacts,这样contacts就可以通过新条目更新,更新的contacts dict会再次保存到文本文件中,覆盖原始dict 如果我将联系人分配给一个空的dict,它也不会起作用,因为每次程序运行时,新数据都会被添加到一个空的dictionary中 我做错了什么 谢谢
Andre文件中没有dict(或任何其他Python对象)这样的东西。您可能有它的字符串表示形式。您需要打开文件,反序列化对象,更新它,然后序列化它并将其写回文件。例如,使用
json
:
import json
with open('some_file') as f:
deserialized_object = json.load(f)
deserialized_object['key_to_update'] = 'updated_value'
serialized_object = json.dumps(deserialized_object)
f.seek(0)
f.write(serialized_object)
f.truncate()
文件中不存在
dict
(或任何其他Python对象)。您可能有它的字符串表示形式。您需要打开文件,反序列化对象,更新它,然后序列化它并将其写回文件。例如,使用json
:
import json
with open('some_file') as f:
deserialized_object = json.load(f)
deserialized_object['key_to_update'] = 'updated_value'
serialized_object = json.dumps(deserialized_object)
f.seek(0)
f.write(serialized_object)
f.truncate()
“我想在文本文件上指定词典”-文本文件中没有词典。只有一堆符号需要解析才能从中提取出结构。“我想在文本文件中分配字典”-文本文件中没有字典。只有一堆符号需要解析才能从中提取出结构。