json fi的读写

2024-10-03 23:20:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用PYTHON做一个项目,在这个项目中我需要读写JSON文件

JSON文件的内容如下所示:

{
  "buildings": [
    {
      "name": "Trump Towers",
      "nr": "1",
      "worth": "399"
    },
    {
      "name": "Penning Towers",
      "nr": "2",
      "worth": "299"
    }
  ],
  "staff": [
    {
      "name": "D Trump",
      "nr": "1",
      "worth": "399"
    },
    {
      "name": "Mr Henry",
      "nr": "2",
      "worth": "299"
    }
  ]
}

同样,我需要能够读取、添加和删除各个建筑物和工作人员的数据

(以下语法不正确,但这就是为什么我要问,我需要帮助)

(语法不准确)例如

>>> read name of building nr 1
Trump Towers

>>> delete 'Trump Towers' from buildings (output to the file)
{
  "buildings": [
    {
      "name": "Penning Towers",
      "nr": "2",
      "worth": "299"
    }
  ],
  "staff": [
    {
      "name": "D Trump",
      "nr": "1",
      "worth": "399"
    },
    {
      "name": "Mr Henry",
      "nr": "2",
      "worth": "299"
    }
  ]
}

>>> set 'Penning Towers' from buildings nr to 1
{
  "buildings": [
    {
      "name": "Penning Towers",
      "nr": "1",
      "worth": "299"
    }
  ],
  "staff": [
    {
      "name": "D Trump",
      "nr": "1",
      "worth": "399"
    },
    {
      "name": "Mr Henry",
      "nr": "2",
      "worth": "299"
    }
  ]
}

>>> add 'Jake' with nr '3' and worth  '999' to staff

{
  "buildings": [
    {
      "name": "Penning Towers",
      "nr": "1",
      "worth": "299"
    }
  ],
  "staff": [
    {
      "name": "D Trump",
      "nr": "1",
      "worth": "399"
    },
    {
      "name": "Jake",
      "nr": "2",
      "worth": "299"
    },
    {
      "name": "Mr Henry",
      "nr": "3",
      "worth": "999"
    }
  ]
}

Tags: 文件to项目namejson语法nrmr
2条回答

您可以使用json library以python dict的形式从文件中加载json,然后修改该json并将其另存为文件

import json

# Open json file and load its content as python dict
file = open('data.json', 'r')
my_json = json.loads(file.read())
file.close()

# Do stuff with that json
del my_json['buildings'][0]
my_json['buildings'][0]['Penning Towers'] = 1
my_json['staff'].append({'name': 'Jake', 'nr': '3', 'worth': '299'})

# Override json file with modified json
file = open('data.json', 'w')
file.write(json.dumps(my_json, indent=4))
file.close()

data.json在运行我们的代码之后:

{
    "staff": [
        {
            "nr": "1",
            "worth": "399",
            "name": "D Trump"
        },
        {
            "nr": "2",
            "worth": "299",
            "name": "Mr Henry"
        },
        {
            "nr": "3",
            "worth": "299",
            "name": "Jake"
        }
    ],
    "buildings": [
        {
            "nr": "1",
            "worth": "299",
            "name": "Penning Towers"
        }
    ]
}

可以使用json模块将带有json.load()的文件加载到Python字典中:

import json

f = open('file.json', 'r')
d = json.load(f)

一旦它是python dict,您就可以随意修改它

然后可以使用json.dump(d)将json写入文件

相关问题 更多 >