我有一个JSON文件,并且我想使用Python中的脚本删除方括号后的所有字段。

我的JSON文件是这样的:

    {
  "Employees": [
    {
      "userId": "krish",
      "jobTitle": "Developer",
      "firstName": "Krish",
      "lastName": "Lee",
      "employeeCode": "E1",
      "region": "CA",
      "phoneNumber": "123456",
      "emailAddress": "krish.lee@learningcontainer.com"
    },
    {
      "userId": "devid",
      "jobTitle": "Developer",
      "firstName": "Devid",
      "lastName": "Rome",
      "employeeCode": "E2",
      "region": "CA",
      "phoneNumber": "1111111",
      "emailAddress": "devid.rome@learningcontainer.com"
    },
    {
      "userId": "tin",
      "jobTitle": "Program Directory",
      "firstName": "tin",
      "lastName": "jonson",
      "employeeCode": "E3",
      "region": "CA",
      "phoneNumber": "2222222",
      "emailAddress": "tin.jonson@learningcontainer.com"
    }
  ]
}
我的Python脚本是这样的:
import json
import re

with open('data.json')as f:
    data = json.load(f)
    for item in data:
        re.sub(" *\[.*\] *"," ",item)

with open('new_data.json','w') as f:
    json.dump(item, f)
我期望这样:
{
  "Employees": 
}
但我收到这个:
"Employees"
我的python代码有什么问题,为什么结果不是预期的呢?

来自朱里兹的回答

JSON是数据结构的序列化,没有规范格式。这意味着对它执行任何形式的文本匹配或正则表达式都是一个非常糟糕的主意,并且只会带来麻烦。

正确的方法是使用JSON解析器将其转换为对象,然后根据对象数据合成所需的任何输出。

在您的情况下,已解析的对象将是带有单个键的字典,您可以像这样获得该键:

print("{{\n  \"{0}\":\n}}".format(list(json.load(f).keys())[0]))
结果:
{
  "Employees":
}
对于任何有价值的东西,这都不是有效的JSON,所以我不确定为什么需要它。