@septim504

Python json, как удалить обьект?

у меня есть json файл
{
    "items": [
        {
        "date": "11.12.2020 22:35:37",
        "type": "buy",
        "game": "CS:GO",
        "balance": "10.9",
        "name": "Tec-9 | Re-Entry (Factory New)",
        "price": "0.77"
        },{
          
      "date": "16.12.2020 23:41:08",
      "type": "charging_fee",
      "game": "CS:GO",
      "balance": "0",
      "name": "Desert Eagle | Midnight Storm (Factory New)",
      "price": "0.36"
    },
    {
      "date": "16.12.2020 22:28:20",
      "type": "buy",
      "game": "CS:GO",
      "balance": "12.32",
      "name": "M4A1-S | Mecha Industries (Field-Tested)",
      "price": "5.43"
    }]
  
}
и скрипт который убирает "type": "charging_fee"
with open('1.json') as json_data:
    data = json.load(json_data)
    
    
for sub_obj in data["data"]:
    if sub_obj["type"] == "charging_fee":
        sub_obj.pop("data")

with open('1.json', 'w') as outfile:  
    json.dump(data, outfile)
Но он убирает лишь ключ и значение "type": "charging_fee" , оставляя остальное. А мне нужно чтоб обьект полностью удалился, и в данном случае json выглядел так
{
    "items": [
        {
        "date": "11.12.2020 22:35:37",
        "type": "buy",
        "game": "CS:GO",
        "balance": "10.9",
        "name": "Tec-9 | Re-Entry (Factory New)",
        "price": "0.77"
        },
    {
      "date": "16.12.2020 22:28:20",
      "type": "buy",
      "game": "CS:GO",
      "balance": "12.32",
      "name": "M4A1-S | Mecha Industries (Field-Tested)",
      "price": "5.43"
    }]
  
}
. Буду благодарен кто поможет, сам я программистом не являюсь, пробовал в интернете искать- не нашел
  • Вопрос задан
  • 132 просмотра
Решения вопроса 1
Mi11er
@Mi11er
A human...
Можно просто сделать новый без вашего
nd = [item for item in data['items'] if item["type"] != "charging_fee"]


Если весь ваш код, то вот

import json

with open('1.json') as json_data:
    data = json.load(json_data)
    
nd = [item for item in data['items'] if item["type"] != "charging_fee"]

with open('1.json', 'w') as outfile:  
    json.dump(nd, outfile)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы