如何删除字典中的项目?

时间:2019-09-05 05:04:52

标签: python-3.x

我正在尝试使用del方法从字典中删除一项(“日志”)。

这是我的代码:

del response.json() ["logs"]
print(response.json())

这是我的JSON字典:

 {'count': 19804, 
    'next': {'limit': 1, 'offset': 1}, 
    'previous': None, 

'results':
 [{'id': '334455', 
    'custom_id': '112', 
    'company': 28, 
    'company_name': 'Sunshine and Flowers', 
    'delivery_address': '34 olive beach house, #01-22, 612345', 

    'delivery_timeslot': {'lower': '2019-12-06T10:00:00Z', 'upper': '2019-12-06T13:00:00Z', 'bounds': '[)'}, 

    'sender_name': 'Edward Shine', 
    'sender_email': '', 
    'sender_contact': '91234567', 
    'removed': None, 
    'recipient_name': 'Mint Shine', 
    'recipient_contact': '91234567', 
    'notes': '', 

    'items': [{'id': 21668, 'name': 'Loose hair flowers', 'quantity': 1, 'metadata': {}, 'removed': None}, {'id': 21667, 'name': "Groom's Boutonniere", 'quantity': 1, 'metadata': {}, 'removed': None}, {'id': 21666, 'name': 'Bridal Bouquet', 'quantity': 1, 'metadata': {}, 'removed': None}], 

    'latitude': '1.28283838383642000000', 
    'longitude': '103.2828037266201000000', 
    'created': '2019-08-15T05:40:30.385467Z', 
    'updated': '2019-08-15T05:41:27.930110Z', 
    'status': 'pending', 
    'verbose_status': 'Pending', 

    '**logs**': [{'id': 334455, 'order': '50c402d8-7c76-45b5-b883-e2fb887a507e', 'order_custom_id': '112', 'order_delivery_address': '34 olive beach house, #01-22, 6123458', 'order_delivery_timeslot': {'lower': '2019-12-06T10:00:00Z', 'upper': '2019-12-06T13:00:00Z', 'bounds': '[)'}, 'message': 'Order was created.', 'failure_reason': None, 'success_code': None, 'success_description': None, 'created': '2019-08-15T05:40:30.431790Z', 'removed': None}, {'id': 334455, 'order': '50c402d8-7c76-45b5-b883-e2fb887a507e', 'order_custom_id': '112', 'order_delivery_address': '34 olive beach house, #01-22, 612345', 'order_delivery_timeslot': {'lower': '2019-12-06T10:00:00Z', 'upper': '2019-12-06T13:00:00Z', 'bounds': '[)'}, 'message': 'Order is pending.', 'failure_reason': None, 'success_code': None, 'success_description': None, 'created': '2019-08-15T05:40:30.433139Z', 'removed': None}], 

    'reschedule_requests': [],
    'signature': None}]

但这是说这个错误

KeyError: 'logs'

我在做什么错?请协助

1 个答案:

答案 0 :(得分:1)

每次调用response.json()时,它都会返回一个新字典,因此您从response.json()删除的密钥将不会反映在下一次对response.json()的调用中。

您应该在删除所需键之前将response.json()的返回值保存到变量中:

data = response.json()
del data['results'][0]['logs']
print(data)