我正在嘗試根據我在 python 字典中遍歷的查找表洗掉專案,但無法洗掉這些值。這篇文章依賴于 python 3.8。
inEvent = {
"event_data": {
"event_name": "Test",
"station_id": "Station1",
"serial_no": "1234",
},
"tests": [
{
"name": "Temperature from Sensor 1",
"status": "Passed",
"value": "21.0",
"limits": [],
"units": "°C",
},
{
"name": "Power Measurement CH1",
"status": "Passed",
"value": "30.9",
"limits": [],
"units": "W",
},
{
"name": "Slope Check: Measured Slope CH1",
"status": "Passed",
"value": "1234.5678",
"limits": {"low": "0", "high": None},
"units": [],
},
{
"name": "Slope Check: Measured Slope CH2",
"status": "Passed",
"value": "-1",
"limits": [],
"units": [],
},
],
"plots": [],
}
在迭代我的字典時,我替換了匹配的名稱,但在極少數情況下,我想洗掉完整的匹配測驗條目。例如{"name": "Slope Check: Measured Slope CH1", "status":"Passed","value": "1234.5678","limits": {"low": "0", "high": None},"units": [],}應該被洗掉
for t in list(inEvent['tests']):
eventName = t['name']
for row in self.LookUpTable.itertuples(index=False): # own lookuptable excel file
if eventName == row[4] and not pd.isnull(row[5]):
t['name'] = row[5]
break
elif eventName == row[4] and pd.isnull(row[5]):
print(inEvent)
inEvent['tests'].pop(t)
break
uj5u.com熱心網友回復:
我建議為此使用嵌套回圈。您可以通過遍歷字典中的所有鍵和值,然后遍歷嵌套字典中的所有鍵和值來實作此目的。然后,您可以使用 if 陳述句在字典中查找要洗掉的鍵。這是您可以使用的簡單代碼大綱(如果這不起作用,那么我建議您在谷歌上準確搜索問題所在并進一步調查):
for key, value in dict.items():
for k, v in k.items():
if v == something:
del key[k]
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/377070.html
上一篇:當資料包含兩部分時過濾熊貓資料框
