使用递归剥离字典中的空白



我需要去掉字典的键和值中的空白:

字典

a = { "a ": { " b ": { "c ": " d " }}}

我希望输出为:

a = { "a": { "b": { "c": "d" }}} #white spaces removed from keys and values

我试过的代码:

def rspace(d):
for k, v in d.items():
if type(v) != dict:
d[k.strip()] = v.strip()
else:
rspace(d[k])
rspace(s)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 5, in rspace
File "<stdin>", line 5, in rspace
File "<stdin>", line 2, in rspace
RuntimeError: dictionary changed size during iteration
def rspace(d1,d2):
for k, v in d2.items():
if type(v) != dict:
d[k.strip()] = v.strip()
else:
rspace(d1[k],v)
d1 = {}
rspace(d1,a)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 6, in rspace
KeyError: 'a '
``

使用:

def stripspace(dictionary):
result = {}
for k, v in dictionary.items():
if isinstance(v, dict):
result[k.strip()] = stripspace(v)
else:
result[k.strip()] = v.strip()
return result

调用函数:

print(stripspace(a)) # a = { "a ": { " b ": { "c ": " d " }}}

此打印:

{'a': {'b': {'c': 'd'}}}

最新更新