python - 将字典作为用户输入,然后保存到json文件中

标签 python json database dictionary user-input

我正在尝试做一个字典数据库,就像实际的字典一样。用户输入关键字及其含义,程序将其保存在数据库中。比如输入单词:rain,输入单词的含义:水滴从云中落下,然后程序将其制成字典。到目前为止,我可以做到这一点,但它没有按照我想要的方式工作。

class Mydictionary:
    def __init__(self):
        self.key=input("Please input word: ")
        self.value=input("Please input meaning of the word: ")

    def mydictionary(self):
        self.dic={self.key:self.value}

Mydic=Mydictionary()
Mydic.mydictionary()

它只能工作一次。我想尽可能多地保存关键字和值。我想创建一个字典数据库。

最佳答案

enter image description here

据我所知,它按照您的解释运行得很好......

如果您认为要在单个对象中插入多个值,那么这将不起作用,因为您在调用构造函数时只获得一个输入。

你必须像这样实现它,

import json

class Mydictionary:
    def __inint__(self):
        self.dic = {}

    def mydictionary(self):
        self.key=input("Please input word: ")
        self.value=input("Please input meaning of the word: ")
        self.dic[self.key] = self.value

    def save(self, json_file):
        with open(json_file, "w") as f:
            json.dump(self.dic, f)

Mydic=Mydictionary()
Mydic.mydictionary()
Mydic.mydictionary()

# to save it in a JSON file
Mydic.save("mydict.json")

现在您可以调用该方法 n 次来添加 n 个条目...

您可以查看下面 @arsho 的答案,我认为这是一个很好的做法。根据他们正在执行的实际功能适本地命名函数很重要。

关于python - 将字典作为用户输入,然后保存到json文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62041943/

相关文章:

python - NumPy 的 : read data from CSV having numerals as string

Python 与 Jinja 验证

javascript - Backbone.js 使用下划线在模板中显示 JSON

javascript - 如何在 Javascript 中检查它是 JsonArray 还是 JsonObject

javascript - 当用户键入一个字母时,如何使用 ajax 自动完成来显示来自 MySQL 数据库的值

python - 如何拆分列表并将其打印在不同的行中?

Python 绘制两个变量之间的每月数据

java - 如何在 Jackson 中自定义数组反序列化?

c++ - Qt QSqlQuery bindValue 与 ?但不是 :placeholders

java - android.database.CursorIndexOutOfBoundsException : No idea why