【发布时间】:2021-06-07 16:02:28
【问题描述】:
我有源字典,请参考下面的示例。它有深层嵌套的子字典和列表,我需要删除值为“nan”的所有键。
data = {"col1":"val1","col2":"val2","col3":"val3","col4":"val3","list1":[{"l1":"v1","l2":"nan"},{"K1":"Kv1","K2":"nan"},{"M1":"Mv1","M2":"nan","sublist1":[{"SL1":"SV1","SL2":"nan"}]}],"list2":[{"l1":"v1","l2":"nan"},{"K1":"Kv1","K2":"nan"},{"M1":"Mv1","M2":"nan","sublist2":[{"SL1":"SV1","SL2":"nan"}]}]}
我通过创建函数尝试了以下代码,但它没有按预期工作:
def cleanNullTerms(d):
clean = {}
for k, v in d.items():
if isinstance(v, list):
for values in v:
nested = cleanNullTerms(values)
if values =='nan':
clean[k] = nested
elif v is not 'nan':
clean[k] = v
return clean
【问题讨论】:
-
“它没有按预期工作”是什么意思?它有什么作用?
-
@HimanshuSharma OP 似乎正在处理字符串,
"nan"而不是float('nan'),不过,这似乎很奇怪......
标签: python