猿问

如何在 JSON 文件中搜索对象,然后更改其中一个密钥对的值?

我有一个如下所示的 JSON 文件:


[

    {

        "domain": "abc.com",

        "action": "no action",

        "date": "2020-05-15",

        "status": "new"

    },

    {

        "domain": "xyz.net",

        "action": "pending",

        "date": "2020-05-15",

        "status": "on-hold"

    }

]

我想找到abc.com然后改变行动的价值。


我已经能够找到 abc.com 并打印动作,并且我已经能够更改每个对象的动作值,但我无法弄清楚如何为那个特定对象更改它。


慕仙森
浏览 123回答 2
2回答

子衿沉夜

你可以试试json_ls = [    {        "domain": "abc.com",        "action": "no action",        "date": "2020-05-15",        "status": "new"    },    {        "domain": "xyz.net",        "action": "pending",        "date": "2020-05-15",        "status": "on-hold"    }]for i in json_ls:    if "abc.com" in i.values():        i['action'] = "New value"新的 json_ls[{'domain': 'abc.com', 'action': 'New value', 'date': '2020-05-15', 'status': 'new'}, {'domain': 'xyz.net', 'action': 'pending', 'date': '2020-05-15', 'status': 'on-hold'}]此代码将更改字典中操作的值,因为“abc.com”是 JSON/字典对象的值之一。

江户川乱折腾

那奏效了。我添加了一条写语句来更新文件:import jsonfhand = open("data.json")data = json.loads(fhand.read())for i in data:    if "xyz.net" in i.values():        i['action'] = "Takedown"with open('data.json', 'w') as outfile:    json.dump(data, outfile)
随时随地看视频慕课网APP

相关分类

Python
我要回答