[英]How do I delete an item within a list in a dictionary?
我正在嘗試清理數據以進行分析
這是JSON示例
response.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}]]
我已經嘗試過此代碼,並且可以正常工作,它會相應刪除指定的項目。
data = response.json()
del data['count']
del data['next']
del data['previous']
del data['results'][0]['logs']
print(data)
但是,當我嘗試刪除“項目”時,我只希望保留“名稱”,因此它不起作用。
這是我的代碼,刪除“項目”中除“名稱”之外的所有內容
del data['results'][0]['items']['id']['quantity']['metadata']['removed']
我想要的輸出是:
'items':
[{'name': 'Loose hair flowers'},
{''name': "Groom's Boutonniere"},
{'name': 'Bridal Bouquet'}]
我該怎么做?
無需從JSON響應中刪除數據,只需迭代JSON響應並使用列表推導獲取項目數據。
例如
items = [{'name' :x['name']} for x in data[0]['results'][0]['items']]
print(items)
O / P:
[{'name': 'Loose hair flowers'}, {'name': "Groom's Boutonniere"},
{'name': 'Bridal Bouquet'}]
或者,如果您想更改響應並且項目僅保留預期的輸出數據,請重新分配它。
data[0]['results'][0]['items'] = items
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.