Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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 JSON替换特定行中的值_Python_Json - Fatal编程技术网

Python JSON替换特定行中的值

Python JSON替换特定行中的值,python,json,Python,Json,我已经用python做了一段时间的实验,但遇到了一个我找不到答案的问题。刚刚开始构建一个小型的“银行”控制台应用程序,它的“数据库”位于JSON文件中。现在我添加了一个名为“转账”的命令,该命令应将“资金”从一个用户id转账到另一个用户id。 JSON文件如下所示: { "users": [ { "user_id": "u111111111", "pin": "222

我已经用python做了一段时间的实验,但遇到了一个我找不到答案的问题。刚刚开始构建一个小型的“银行”控制台应用程序,它的“数据库”位于JSON文件中。现在我添加了一个名为“转账”的命令,该命令应将“资金”从一个用户id转账到另一个用户id。 JSON文件如下所示:

{
"users": [
    {
        "user_id": "u111111111",
        "pin": "2222",
        "balance": "50800"
    },
    {
        "user_id": "u123456789",
        "pin": "1234",
        "balance": "0"
    }
]
}
我最后一次尝试就是这样,结果完全卡住了

user_database = 'accounts.json'
    ujf = json.loads(open(user_database, 'r+').read())

    for element in ujf['users']:
        if (element['user_id'] == str(user_id_one)):
            element['balance'] = str(user_one_new_balance)
        else:
            pass

如何在不创建新文件的情况下更新用户id u111111111和用户id u123456789的“余额”值并保存文件?

首次导入JSON模块:

import json
然后将JSON文件作为字典加载:

d = json.load(r'PATH')
然后在循环内,您可以将
用户['balance']
分配给您喜欢的任何对象,例如,此处的8:

for user in d['users']:
     if user['user_id'] in ['u111111111','u123456789']:
         user['balance'] = 8
然后倒回去:

json.dump(d,(open(r'PATH','w')))

为数据库使用JSON是一个糟糕的主意。顺便问一下,你必须处理一个分类账,并根据初始值计算该分类账的余额。这是否回答了你的问题?看起来你已经解决了你的问题。现在只需将
dict
转储回JSON文件。你查过怎么做吗?