更新在 Python 中编辑的 json 文件

Updating the json file edited in Python

假设我有一个 json 文件,例如 -

{
  "course": "hwjxh",
  "school_id": 1234,
  "name_list": [
    {
      "name": "xyzzy",
      "marks": 97
    },
    {
      "name": "abc",
      "marks": 44
    },
    {
      "name": "qwe",
      "marks": 78
    },
    {
      "name": "def",
      "marks": 90
    },
    {
      "name": "jkl",
      "marks": 80
    },
    {
      "name": "abc",
      "marks": 78
    }
  ],
  "course_id": "567",
  "s_name": "abc public school"
}

这是一个单独的对象。有数百个类似的对象。 我所做的是从“name_list”访问每个 'name' 并使用一些规则清理它。在那个过程中,一些通用名称被删除。 现在我想将清理后的数据更新回 json 文件。请注意,如果通用名称被过滤,那么在将数据更新回 json 文件时,相应的标记也应该被删除。 有人可以帮我解决这个问题吗? 我将这些 json 个对象放在一个文件中,我使用 'smart_open' 库打开了它。

让我用一个例子向您展示如何做到这一点:

import json

def check_name(name):
    if 'xyz' in name: #define the name filter here, this example filters out names with xyz
        return False
    #elif 'something' in name: #optionally more filters
    #    return False
    else:
        return True

with open("filename.json") as f:
    data = json.load(f) #load json as python dictionary
    data['name_list'] = [i for i in data['name_list'] if check_name(i['name'])] #pass the name_list items to the filter function and keep only those items that return True
    json.dump(data, open("filename.json", "w")) #save back to json