首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想为Gauss实现做proram,并且我想在一个JSON上保存每一个迭代

我想为Gauss实现做proram,并且我想在一个JSON上保存每一个迭代
EN

Stack Overflow用户
提问于 2022-09-15 14:29:16
回答 1查看 18关注 0票数 0

我想为Gauss实现做proram,我想在一个JSON上保存每个迭代,但是我有一些麻烦,因为我的代码只将最后一个迭代保存到Json

代码语言:javascript
复制
import json

iterasi={
    "iterasi":None,
    "x1":0,
    "x2":0,
    "x3":0,
    }



for x in range (0,11):
    iterasi["iterasi"]=x
    iterasi["x1"]=6-iterasi["x2"]-iterasi["x3"]
    iterasi["x2"]=(2-iterasi["x1"]+iterasi["x3"])/2
    iterasi["x3"]=(10-2*iterasi["x1"]-iterasi["x2"])/2

    try:
        with open("Gauss Siedel.json", "r") as database:
            new_data = json.load(database)
    except FileNotFoundError:
        with open("Gauss Siedel.json", "w") as database:
            json.dump(iterasi, database, indent=4)
    else:
        new_data.update(iterasi)
        print(new_data)
        with open("Gauss Siedel.json", "w") as database:
            json.dump(new_data, database, indent=4)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-15 17:37:18

new_datadictionary (字典可能只有一个键iterasi等等),因此它取代了以前的值。

你应该把它们保留为list of dictionares

代码语言:javascript
复制
[{"iterasi": val1, "x1": ... }, {"iterasi":, val2, "x1": ...}, ...]. 

以及这个列表中的append()新字典。

或者你应该把它们保留为dictionary of lists

代码语言:javascript
复制
{"iterasi": [ val1, val2, ... ], "x1": [...], ...}

并将值附加到这些变量。但这需要更多的代码。

使用list of dictionares的版本

代码语言:javascript
复制
import json

iterasi = {
    "iterasi": None,
    "x1": 0,
    "x2": 0,
    "x3": 0,
}

#all_results = []

for x in range(11):
    iterasi["iterasi"] = x
    iterasi["x1"] = 6-iterasi["x2"]-iterasi["x3"]
    iterasi["x2"] = (2-iterasi["x1"]+iterasi["x3"])/2
    iterasi["x3"] = (10-2*iterasi["x1"]-iterasi["x2"])/2

    try:
        print('read')
        with open("Gauss Siedel.json", "r") as database:
            all_results = json.load(database)
    except FileNotFoundError:
        print('new list')
        all_results = []
    finally:
        print('append')
        all_results.append(iterasi)
        print(all_results)

        print('write')
        with open("Gauss Siedel.json", "w") as database:
            json.dump(all_results, database, indent=4)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73732965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档