Python 3.x 如何将文本词典从文件更改为可用词典

Python 3.x 如何将文本词典从文件更改为可用词典,python-3.x,function,file,dictionary,text,Python 3.x,Function,File,Dictionary,Text,好的,所以我需要做这个函数,基本上把玩家的用户名保存在一个字典里,然后保存在一个文本文件中,以便再次使用 问题是在重用它时,我无法将从文件中获取的str保存到字典中 这是我的密码: from ast import eval def verification(j, d): if j in d.keys(): return d else: d[j] = [0,0] return d savefile = open("save.txt", "

好的,所以我需要做这个函数,基本上把玩家的用户名保存在一个字典里,然后保存在一个文本文件中,以便再次使用

问题是在重用它时,我无法将从文件中获取的str保存到字典中

这是我的密码:

from ast import eval

def verification(j, d):
    if j in d.keys():
        return d
    else:
        d[j] = [0,0]
    return d

savefile = open("save.txt", "r")
'''d = dict()
for line in savefile:
    (key, val) = line.split(".")
    d[key] = val
print(d)'''
d = savefile.read()
python_dict = literal_eval(d)
savefile.close()


j = input("name? ")
result = verification(j, python_dict)

savefile = open("save.txt", "w")
'''for i in result:
    text = i + "." + str(result[i]) + " \n"
    savefile.write(text)'''
savefile.write(str(result))
savefile.close()
如您所见,我从
ast
尝试了
literal\u eval
。我还尝试了一个.split(),但那不起作用。所以我被卡住了。有什么想法吗?这会有很大的帮助


谢谢

如果您有现成的库可以为您进行编码/解码,那么就不需要从头开始进行编码/解码

一个很好的例子是,它也不是Python独占的,因此您创建的数据库可以被其他应用程序使用

这可以通过以下方式轻松实现:

导入json
def验证(j,d):
如果j不在d中:
d[j]=[0,0]
返回d
打开(“save.txt”、“r”)作为保存文件:
python_dict=json.load(保存文件)
j=输入(“名称?”)
结果=验证(j,python\u dict)
打开(“save.txt”、“w”)作为保存文件:
dump(结果,保存文件)

“不起作用”-请提供完整的回溯。一般来说,你应该提供一个,包括最小的输入和代码来重现你的问题和实际的问题。instead@Tomerikoo我的代码会是什么样子?@aryamcarthy我把密钥和它们的值保存在文件中,文件之间用“.”隔开当我做一条新的线路时,它会下降两倍。因此会有一个错误,因为没有任何东西可以拆分成单独的键和值。您查看了该链接了吗?这非常简单。就像
json.dump(result,savefile)
python\u dict=json.load(savefile)
一样简单,我运行了你的代码,它给了我一个错误:在给我5个文件路径之后,它告诉我:
json.decoder.jsondecoderError:需要用双引号括起来的属性名:第1行第2列(char 1)
,正如错误所说,JSON使用双引号
。如果您手动编写该文件,请将单引号更改为双引号以共享文件内容。因此,我在文本中添加了双引号,并且它可以工作,除了
python_dict
是字符串而不是字典之外,因此,我无法添加和更改其键和值。该文件包含:{'Natsirt':[0,0]}”