Python 3.x 如何将文本词典从文件更改为可用词典
好的,所以我需要做这个函数,基本上把玩家的用户名保存在一个字典里,然后保存在一个文本文件中,以便再次使用 问题是在重用它时,我无法将从文件中获取的str保存到字典中 这是我的密码: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", "
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]}”