当前位置: 首页 > 知识库问答 >
问题:

如何使用Python删除json对象?

燕星鹏
2023-03-14

我使用python删除和更新从用户提供的数据生成的JSON文件,这样只需要在数据库中存储很少的项。我想从JSON文件中删除一个特定的对象。

[
  {
      "ename": "mark",
      "url": "Lennon.com"
  },
  {
      "ename": "egg",
      "url": "Lennon.com"
  }
]

我想删除带有ename标记的JSON对象。

由于我是python新手,我试图通过将对象转换为dict来删除它,但它不起作用。还有别的办法做吗?我试过这个:

index=0
while index < len(data):
    next=index+1
    if(data[index]['ename']==data[next]['ename']):
        print "match found at"
        print "line %d and %d" %(next,next+1)
        del data[next]
    index +=1

共有1个答案

郭德惠
2023-03-14

下面是一个完整的示例,它加载JSON文件,移除目标对象,然后将更新后的JSON对象输出到文件中。

#!/usr/bin/python                                                               

# Load the JSON module and use it to load your JSON file.                       
# I'm assuming that the JSON file contains a list of objects.                   
import json
obj  = json.load(open("file.json"))

# Iterate through the objects in the JSON and pop (remove)                      
# the obj once we find it.                                                      
for i in xrange(len(obj)):
    if obj[i]["ename"] == "mark":
        obj.pop(i)
        break

# Output the updated file with pretty JSON                                      
open("updated-file.json", "w").write(
    json.dumps(obj, sort_keys=True, indent=4, separators=(',', ': '))
)

主要的一点是,我们通过遍历加载列表中的对象来找到对象,然后在找到对象后将其弹出列表。如果需要移除列表中的多个对象,那么应该存储要移除的对象的索引,然后在到达for循环结束后一次性移除它们(在遍历列表时不想修改列表)。

 类似资料:
  • 问题内容: 我正在使用python删除和更新根据用户提供的数据生成的JSON文件,因此数据库中应仅存储少量项目。我想从JSON文件中删除特定对象。 我的JSON文件是: 我想使用删除JSON对象 。 由于我是python的新手,所以我尝试通过将对象转换为dict来删除它,但它不起作用。还有其他方法吗?我尝试了这个: 问题答案: 这是一个完整的示例,该示例加载JSON文件,删除目标对象,然后将更新的

  • 问题内容: 我对python中的详细信息,何时以及为什么使用它以及不应该使用它的细节感到好奇。我已经学到了一种很难的方法,即它不是真的与析构函数的幼稚期望一样,因为它不是/的反义词。 我在文档中看到, 不能 保证在解释器退出时仍然为存在的对象调用方法。 如何保证在存在解释器退出时存在的任何情况下,指示条都关闭? 在上面的代码片段中,该条是否在…或…上关闭?如果您想更好地控制这些细节(例如,在未引用

  • 本文向大家介绍如何使用python删除一个文件?相关面试题,主要包含被问及如何使用python删除一个文件?时的应答技巧和注意事项,需要的朋友参考一下  

  • 本文向大家介绍如何使用Python删除交换文件?,包括了如何使用Python删除交换文件?的使用技巧和注意事项,需要的朋友参考一下 交换文件的扩展名为.swp。递归地从文件夹中删除所有交换文件的最简单方法是使用带有扩展名(.swp)的字符串函数ends匹配文件名并删除这些文件。  示例 该程序将递归搜索目录“ my_folder”,并删除所有以.swp结尾的文件。

  • 问题内容: 我陷入了XML和Python的困境。任务很简单,但到目前为止我还无法解决,花了那么长时间。我是来这里咨询如何用几行解决它的。 感谢您对遍历树的任何帮助。我总是以太多或太少的元素结束。元素可以无限制地嵌套。给出的例子只是一个例子。我会接受任何解决方案,而不是对dom,minidom,sax等等不挑剔。 我有一个与此类似的XML文件: 我需要的是-解析XML并编写一个新文件。新文件应包含给

  • 问题内容: 我是Python的新手,并且正在使用JSON数据。我想通过向现有JSON对象添加一些键值来动态构建JSON对象。 我尝试了以下方法,但得到了: 问题答案: 您在将对象编码为JSON字符串 之前先 对其进行构建: JSON是 序列化 格式,文本数据 表示 结构。它本身不是那个结构。