首页 > 解决方案 > 从 JSON 文件中删除项目 - Python

问题描述

我有一个 JSON 文件,想删除开头和结尾部分

{
 "records":
    [{
         "id":"53c5d162-3dd4-41ea-afd1-378b5be1bf04",
         "userid":"u111124027",
         "username":"Testuser",
         "deviceid":"1185494411",
         "devicename":"",
         "start_date":"2020-05-19T06:46:55Z",
         "fee":0.0,
         "currency":"None",
         "billing_state":"Bill",
         "contact_id":"c410618636"
       }], 
"records_remaining":0
}

要移除的部件

{
"records": , 
"records_remaining":0
}

删除零件的代码

for element in data:
    if 'records' in element:
        del element['records']

错误:

del element['records']
TypeError: 'str' object does not support item deletion

如果我手动删除这些部件,我可以通过以下方式操作 JSON

if 'userid' in element:
    del element['userid']

有没有可能去掉这两个部分?我解决了一个休息 API 并将 -get 保存到一个 JSON 文件中。要继续使用 JSON 文件,我必须删除这两个部分

最后,json 文件应如下所示:

[{
    "id":"53c5d162-3dd4-41ea-afd1-378b5be1bf04",
    "userid":"u111124027",
    "username":"Testuser",
    "deviceid":"1185494411",
    "devicename":"",
    "start_date":"2020-05-19T06:46:55Z",
    "fee":0.0,
    "currency":"None",
    "billing_state":"Bill",
    "contact_id":"c410618636"
}]

标签: pythonjsonapirest

解决方案


在 Python 中加载 JSON 对象非常容易。Python 有一个名为 json 的内置包,可用于处理 JSON 数据。这是通过使用 json 模块完成的,它为我们提供了很多方法,其中的 load() 和 load() 方法将帮助我们读取 JSON 文件。

JSON的反序列化

JSON 的反序列化是指将 JSON 对象转换为它们各自的 Python 对象。load()/loads() 方法用于它。如果你使用过其他程序的 JSON 数据,或者获取为 JSON 的字符串格式,那么很容易用 load()/loads() 反序列化,通常用于从字符串加载,否则根对象在 list 或字典。

json.load() : json.load() 接受文件对象,解析 JSON 数据,用数据填充 Python 字典并将其返回给您。

句法:

json.loads(file object)

从 json 正常读取将是 -

# Python program to read 
# json file 


import json 

# Opening JSON file 
f = open('data.json',) 

# returns JSON object as  
# a dictionary 
data = json.load(f) 

# saving the records array
records = data["records"]

# Iterating through the json 
# list from records array
for i in data['records']: 
    print(i) 

# Closing file 
f.close() 

现在根据您的用例,您只需要记录而不需要来自 json 的其他键。而不是从 json 中删除它,您可以访问它data["records"]来解决问题。

但是,如果您仍想删除它,则可以使用data["records"]from json 并将其存储在变量中。然后,您必须将其写入文件以保持持久性。


推荐阅读