【发布时间】:2023-07-20 16:33:01
【问题描述】:
我正在尝试在将嵌套字典插入 Mongo 之前对其进行清理。 dict 中的一些键中有句点,所以我需要用下划线替换它们。根据我看到的其他帖子,我想出了这个(不工作)代码示例:
def get_recursively(search_dict):
new_dict = {}
for key, value in search_dict.items():
if '.' in key or ' ' in key:
new_dict[key.replace('.', '_').replace(' ', '_').lower()] = value
elif isinstance(value, dict):
results = get_recursively(value)
for key2, value2 in results.items():
new_dict[key] = dict(key2, value2)
elif isinstance(value, list):
for item in value:
if isinstance(item, dict):
more_results = get_recursively(item)
for key3, value3 in more_results.items():
new_dict[key] = dict(key3, value3)
else:
new_dict[key] = value
return new_dict
我正在尝试制作一个新字典,因为当我尝试修改现有字典时,我收到一个关于字典在执行期间更改的错误。
无效的代码(至少)是:
dict(key2, value2)
这不是有效的语法,但希望至少能展示我的思维过程。
非常感谢任何帮助。
【问题讨论】:
标签: python-3.x dictionary recursion