我從 API 存盤資料(然后我將其存盤為泡菜),有時由于缺少欄位而出現錯誤。我想知道如何使它只針對有問題的變數并將其值記錄為“NULL”。
問題是我存盤了 6 個不同的變數,因此如果其中一個有問題,則將跳過所有其他 5 個變數。相反,我希望那個(或那些)有問題的變數被值“NULL”(或無)替換。
meta = loaded_from_pickle('myData.pickle')
def getAllData():
data = []
for i in range(len(meta)):
try:
name = meta[i]['base']['name']
weight = meta[i]['base']['weight']
height = meta[i]['base']['height']
age = meta[i]['secondary']['age']
eye_color = meta[i]['secondary']['eye_color']
birthday = meta[i]['secondary']['birthday']
data.append((name, weight, height, age, eye_color, birthday))
except:
pass
return data
print(getAllData())
所以發生的事情是我最終丟失了很多資料點,因為有些資料沒有“eye_color”之類的。所以當有“例外”時我應該做的是“使有問題的變數=“NULL””,而不是僅僅傳遞整個回圈。
uj5u.com熱心網友回復:
與其直接使用方括號訪問密鑰,不如嘗試使用get() 它回傳一個默認值,即None如果找不到密鑰。
有關更多資訊,請參閱此答案https://stackoverflow.com/a/11041421/3125312
您可以在代碼中使用它:
name = meta[i]['base'].get('name')
weight = meta[i]['base'].get('weight')
height = meta[i]['base'].get('height')
...
enumerate您還可以使用假設 meta 是一個串列來重寫您的 for 回圈
for index, value in enumerate(meta):
name = value['base'].get('name')
...
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/469982.html
上一篇:如何將功能與輸入和除外結合起來
