python - 从 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"
}]
解决方案
在 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 并将其存储在变量中。然后,您必须将其写入文件以保持持久性。
推荐阅读
- r - 为 r 中的生存分析生成数据
- rest - POST、PUT 和 DELETE 请求出现 CORS 错误,但 GET 工作正常
- apache-kafka - 如何将kafka主题数据存储到cassandra中
- reactjs - ReactJS - Internet Explorer 在每次刷新时提示停留/离开页面
- json - 如何在 Flutter 内部的 url 中包含变量
- python - 正则表达式 - 从列表中搜索没有尾随的连续元素并开始空格
- seaborn - Seaborn kdeplot 颜色条
- java - 盈透证券 java api,Eclient::reqOpenOrders 不工作
- discord.js - discord.js 在尝试踢自己时显示特定消息
- java - 使用弹簧管理线程创建弹簧线程池