首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python删除json文件中的字典项

使用Python删除json文件中的字典项
EN

Stack Overflow用户
提问于 2022-11-02 14:03:24
回答 1查看 59关注 0票数 1

我在python中有一个示例json文件。

代码语言:javascript
复制
[
  {
    "WHO": "Joe",
    "WEEK": [
      {
        "NUMBER": 3,
        "EXPENSE": [
          {
            "WHAT": "Beer",
            "AMOUNT": 18.00
          },
          {
            "WHAT": "Food",
            "AMOUNT": 12.00
          },
          {
            "WHAT": "Food",
            "AMOUNT": 19.00
          },
          {
            "WHAT": "Car",
            "AMOUNT": 20.00
          }
        ]

因此,在这方面,我必须删除/删除整个car字典。是否可以使用try-except语句将其作为异常处理。

我尝试在POP()DEL()函数中使用、Python、,但没有成功。

EN

回答 1

Stack Overflow用户

发布于 2022-11-02 14:33:07

您不需要try-except块,只需加载json数据并在字段中迭代寻找Car

首先将json保存为名为"jsondata.json"的文件

jsondata.json

代码语言:javascript
复制
[{ "WHO": "Joe", "WEEK": [{"NUMBER": 3,"EXPENSE":[
    {   "WHAT": "Beer",
        "AMOUNT": 18.00
    },
    {
        "WHAT": "Food",
        "AMOUNT": 12.00
    },
    {
        "WHAT": "Food",
        "AMOUNT": 19.00
    },
    {
       "WHAT": "Car",
       "AMOUNT": 20.00
    }
    ]}]}
]

然后是一个小的工作例子:

代码语言:javascript
复制
import json

def get_car(jdata):
    for idx, expense in enumerate(jdata[0]['WEEK'][0]['EXPENSE']):
        if expense['WHAT'] == 'Car':
            del jdata[0]['WEEK'][0]['EXPENSE'][idx]
            print('REMOVING CAR!')
            return jdata 
    print('NO CAR FOUND!')
    return jdata


if __name__ == '__main__':
    #loads json
    with open('jsondata.json') as fh:
        jsondata = fh.read()
    myjson = json.loads(jsondata)
    print(myjson)
    print('Running function...')
    myjson_after = get_car(myjson)
    print(myjson_after)

如果您的数据已被净化,并且您在格式化或格式错误的信息方面没有不正常之处,那么只需循环EXPENSE字段,检查与您正在寻找的信息匹配的项。当您发现它具有enumerate时,可以为您提供"Car"字段的索引,然后可以对该项进行del,并返回新的json数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74290461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档