Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 保存字典并保存它_Python_Dictionary - Fatal编程技术网

Python 保存字典并保存它

Python 保存字典并保存它,python,dictionary,Python,Dictionary,我正在努力编一本单词词典。我想将添加的单词保存到字典word中,以便再次运行时可以查找添加的单词 #A DICTIONARY THAT CONTAINS ALL THE TRANSLATED WORDS word = {"ikkje": "ikke"} #TAKES INPUT FROM USER; THE WORD IN THE FIRST "LANGUAGE" nynorsk = input("WRITE THE 'NYNORSKE' WORD NOW:") bokmål = inpu

我正在努力编一本单词词典。我想将添加的单词保存到字典
word
中,以便再次运行时可以查找添加的单词

#A DICTIONARY THAT CONTAINS ALL THE TRANSLATED WORDS
word = {"ikkje": "ikke"}

#TAKES INPUT FROM USER; THE WORD IN THE FIRST "LANGUAGE"
nynorsk = input("WRITE THE 'NYNORSKE' WORD NOW:") 

bokmål = input("WRITE THE SAME WORD IN 'BOKMÅL' NOW:")

#A FUNCTION THAT ADDS A NEW WORD WITH TRANSLATION TO THE DICTIONARY "word"
def add_word(self,var):
    word[nynorsk] = bokmål

add_word(nynorsk, bokmål)
print(word)

您必须将字典持久化到一个文件中。我建议用这个

import json

#A FUNCTION THAT ADDS A NEW WORD WITH TRANSLATION TO THE DICTIONARY "word"
def add_word(nynorsk_word, bokmål_word):
    word[nynorsk_word] = bokmål_word

#A DICTIONARY THAT CONTAINS ALL THE TRANSLATED WORDS
try:
    # Try to load the word JSON file.
    word = json.load(open("word.json"))
except FileNotFoundError:
    # Initialize it, if the file does not exist.
    word = {"ikkje": "ikke"}

#TAKES INPUT FROM USER; THE WORD IN THE FIRST "LANGUAGE"
nynorsk = input("WRITE THE 'NYNORSKE' WORD NOW:")
bokmål = input("WRITE THE SAME WORD IN 'BOKMÅL' NOW:")

add_word(nynorsk, bokmål)

# Write the word JSON file.
with open("word.json", "w") as wordfile:
    json.dump(word, wordfile)

print(word)

您必须将字典持久化到一个文件中。我建议用这个

import json

#A FUNCTION THAT ADDS A NEW WORD WITH TRANSLATION TO THE DICTIONARY "word"
def add_word(nynorsk_word, bokmål_word):
    word[nynorsk_word] = bokmål_word

#A DICTIONARY THAT CONTAINS ALL THE TRANSLATED WORDS
try:
    # Try to load the word JSON file.
    word = json.load(open("word.json"))
except FileNotFoundError:
    # Initialize it, if the file does not exist.
    word = {"ikkje": "ikke"}

#TAKES INPUT FROM USER; THE WORD IN THE FIRST "LANGUAGE"
nynorsk = input("WRITE THE 'NYNORSKE' WORD NOW:")
bokmål = input("WRITE THE SAME WORD IN 'BOKMÅL' NOW:")

add_word(nynorsk, bokmål)

# Write the word JSON file.
with open("word.json", "w") as wordfile:
    json.dump(word, wordfile)

print(word)

如果您想在关闭和打开程序后仍保持词典,我可以推荐两种方法

1-您可以使用
搁置
模块。
此模块帮助您将变量(甚至文件对象)存储到文件中,然后您可以读取文件

import shelve

shelf = shelve.open('store')
shelf['ikkje'] = 'ikke'
再次关闭并打开文件
2-您可以使用
pprint.pformat
将变量排列成有意义的格式,并将其保存到.py文件中。
之后只需导入此文件即可。请注意,您只能对特定对象使用此方法,而不能对文件等复杂对象使用此方法

import pprint

words = {'ikkje': 'ikke'}

with open('store.py', 'w') as store:
    store.write('words = ' + pprint.pformat)
再次关闭并打开文件
如果您想在关闭和打开程序后仍保持词典,我可以推荐两种方法

1-您可以使用
搁置
模块。
此模块帮助您将变量(甚至文件对象)存储到文件中,然后您可以读取文件

import shelve

shelf = shelve.open('store')
shelf['ikkje'] = 'ikke'
再次关闭并打开文件
2-您可以使用
pprint.pformat
将变量排列成有意义的格式,并将其保存到.py文件中。
之后只需导入此文件即可。请注意,您只能对特定对象使用此方法,而不能对文件等复杂对象使用此方法

import pprint

words = {'ikkje': 'ikke'}

with open('store.py', 'w') as store:
    store.write('words = ' + pprint.pformat)
再次关闭并打开文件
您可以使用pickle在本地磁盘上存储文件。它用于序列化和反序列化

temp = get_list_from_pickle('alerted_dict.pickle')
word = {"ikkje": "ikke"}
#TAKES INPUT FROM USER; THE WORD IN THE FIRST "LANGUAGE"
nynorsk = input("WRITE THE 'NYNORSKE' WORD NOW:") 
bokmål = input("WRITE THE SAME WORD IN 'BOKMÅL' NOW:")

#A FUNCTION THAT ADDS A NEW WORD WITH TRANSLATION TO THE DICTIONARY "word"
def add_word(self,var):
    word[nynorsk] = bokmål
add_word(nynorsk, bokmål)
with open('alerted_dict.pickle', 'wb') as fp:
     pickle.dump(temp, fp)
print(word)

def get_list_from_pickle(filename):
    try:
      with open(filename, 'rb') as fp:
           return pickle.load(fp)
    except FileNotFoundError:
      with open(filename, 'wb') as fp:
           pickle.dump([], fp)

您可以使用pickle在本地磁盘上存储文件。它用于序列化和反序列化

temp = get_list_from_pickle('alerted_dict.pickle')
word = {"ikkje": "ikke"}
#TAKES INPUT FROM USER; THE WORD IN THE FIRST "LANGUAGE"
nynorsk = input("WRITE THE 'NYNORSKE' WORD NOW:") 
bokmål = input("WRITE THE SAME WORD IN 'BOKMÅL' NOW:")

#A FUNCTION THAT ADDS A NEW WORD WITH TRANSLATION TO THE DICTIONARY "word"
def add_word(self,var):
    word[nynorsk] = bokmål
add_word(nynorsk, bokmål)
with open('alerted_dict.pickle', 'wb') as fp:
     pickle.dump(temp, fp)
print(word)

def get_list_from_pickle(filename):
    try:
      with open(filename, 'rb') as fp:
           return pickle.load(fp)
    except FileNotFoundError:
      with open(filename, 'wb') as fp:
           pickle.dump([], fp)

问题是什么。你的代码运行得很好,我需要它永远保存在那里,也许可以这样保存到文件中?好的。您应该使用
Pickle
来使用数据库或将值作为JSON转储到文件中。字典是易变的。Python具有使用SQLite数据库的内置功能。现在,您的
word
字典存储在RAM中。每次运行代码时,数据都将被销毁。卢茨·霍恩在下面给出了一个很好的解决方案。你的代码运行得很好,我需要它永远保存在那里,也许可以这样保存到文件中?好的。您应该使用
Pickle
来使用数据库或将值作为JSON转储到文件中。字典是易变的。Python具有使用SQLite数据库的内置功能。现在,您的
word
字典存储在RAM中。每次运行代码时,数据都将被销毁。卢茨·霍恩在下面给出了一个很好的解决方案。谢谢,我一定会试试这个!我添加了一个编辑<原始代码中的code>add_word()使用全局变量,参数
self
var
未使用。另外,
self
通常是类方法中使用的关键字,而不是函数中使用的关键字。谢谢,我一定会试试这个!我添加了一个编辑<原始代码中的code>add_word()使用全局变量,参数
self
var
未使用。另外,
self
通常是类方法中使用的关键字,而不是函数中使用的关键字。