从JSON文件删除项目-Python

时间:2020-05-19 07:13:00

标签: python json api rest

我有一个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']

是否可以删除两个部分? 我解决了rest API,并将-get保存到JSON-File中。 要继续使用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"
}]

2 个答案:

答案 0 :(得分:2)

在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"]来解决问题。

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

答案 1 :(得分:1)

非常感谢,我学到了一些新东西。

现在,我可以继续使用该文件并将其转换为CSV。

with open('data.json', 'w') as f:
    json.dump(records, f)

df = pd.read_json('data.json')
df.to_csv('data.csv')