为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕仙森 2022-12-27 15:46:10
我有一个如下所示的 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 并打印动作,并且我已经能够更改每个对象的动作值,但我无法弄清楚如何为那个特定对象更改它。
查看完整描述

2 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

你可以试试


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/字典对象的值之一。


查看完整回答
反对 回复 2022-12-27
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

那奏效了。我添加了一条写语句来更新文件:


import json


fhand = 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)


查看完整回答
反对 回复 2022-12-27
  • 2 回答
  • 0 关注
  • 74 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信