Python:替换现有的json文件

Python:替换现有的json文件,python,json,dictionary,Python,Json,Dictionary,我想在我的字典中添加一个新条目,但下面的代码会用初始字典覆盖现有文件,并用新条目添加第二个字典。我只想更新一个dict。我的初始字典如下所示: 这是我的代码: @app.route("/add_movie", methods=["POST"]) def add_movie(): test_title = request.form["title"] test_year = request.form["year&

我想在我的字典中添加一个新条目,但下面的代码会用初始字典覆盖现有文件,并用新条目添加第二个字典。我只想更新一个dict。我的初始字典如下所示:

这是我的代码:

@app.route("/add_movie", methods=["POST"])
def add_movie():
    test_title = request.form["title"]
    test_year = request.form["year"]
    new_entry = {"Title": test_title,"Year": test_year,}
    with open("movie_database.json", "r+", encoding="UTF-8") as open_file:
        movie_database = json.load(open_file)
        movie_database.append(new_entry)
        json.dump(movie_database, open_file)
    return render_template("search.html")

有人知道这里出了什么问题吗?

我相信是因为你用了

with open("movie_database.json", "r+", encoding="UTF-8") as open_file:
而不是

with open("movie_database.json", "a", encoding="UTF-8") as open_file:

以“a”开头意味着附加到文件中

嗨,莱克斯,谢谢你的回答。不幸的是,此时会出现此错误消息:io.UnsupportedOperation:不可读然后必须使用+而不是a出现新错误:json.decoder.JSONDecodeError:预期值:第1行第1列(字符0)。可能是因为我的json文件。请务必记住对文件内容调用json.loads(),而不是json:json_file_path=“/path/to/example.json”,其中open(json_file_path,'r')为j:contents=json.loads(j.read())