我在python中有一个示例json文件。
[
{
"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、,但没有成功。
发布于 2022-11-02 14:33:07
您不需要try-except块,只需加载json数据并在字段中迭代寻找Car。
首先将json保存为名为"jsondata.json"的文件
jsondata.json
[{ "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
}
]}]}
]然后是一个小的工作例子:
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数据。
https://stackoverflow.com/questions/74290461
复制相似问题