[英]Python Conditional Key/Value in Dict
我有以下一段代碼:
payload = [
{
'car': {
'vin': message.car_reference.vin,
'brand': message.car_reference.model_manufacturer,
'model': message.car_reference.model_description,
'color': message.car_reference.color,
},
}
]
message.car_reference 上唯一保證不是 None 的字段是 vin。 我仍然希望其他鍵(品牌、型號、顏色)僅在它們具有值時才出現在 dict 中。
有效載荷被發送到一個外部 API,如果例如 color = None,它會給我一個錯誤。
如果鍵和值的值不是 None ,我如何才能只添加鍵和值?
直到現在我想到的是多個 if 語句,但這看起來很糟糕,我認為這不是正確的方法。
這段代碼遞歸地查看數據結構內部
def recur_remover(collection):
if isinstance(collection, list):
# This allows you to pass in the whole list immediately
for item in collection:
recur_remover(item)
elif isinstance(collection, dict):
# When you hit a dictionary, this checks if there are nested dictionaries
to_delete = []
for key, val in collection.items():
if val is None:
to_delete.append(key)
else:
recur_remover(collection[key])
for k in to_delete:
# deletes all unwanted keys at once instead of mutating the dict each time
del collection[k]
else:
return
如果我正確理解你的問題,你可以這樣做
your_car_collection = [{'car': {k: v for k, v in car['car'].items() if v}} for car in your_car_collection]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.