gpt4 book ai didi

python - 如何将变量分配给Python中保存在文本文件中的字典

转载 作者:太空宇宙 更新时间:2023-11-03 21:15:48 24 4
gpt4 key购买 nike

作为初学者,我正在尝试使用保存在名为contacts.txt的文本文件中的字典来存储数据来编写联系人列表程序。为了更新我的联系人字典,我可以使用contacts.update(dict2 ),dict2 是新联系人的输入数据。我已经尝试过下面的代码,但它不起作用:

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”分配给保存在文本文件中的字典。最初该字典将为空,但每次输入新的联系方式时都会填充新数据。

但是当我运行程序时,我收到一个错误:AttributeError: '_io.TextIOWrapper' object has no attribute 'update'。

显然问题出在这里:

contacts = contacts_file = open("contacts.txt", 'a+')

我想将文本文件上的字典分配给变量联系人,以便通过 new_entry 更新联系人,并将更新的联系人字典再次保存到文本文件中,覆盖原始字典。

如果我将联系人分配给空字典,它也不起作用,因为每次程序运行时新数据都会添加到空字典中。

我做错了什么?

谢谢

安德烈

最佳答案

文件中不存在诸如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()

关于python - 如何将变量分配给Python中保存在文本文件中的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54725101/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com