【发布时间】:2021-12-08 12:15:46
【问题描述】:
我有一个嵌套字典,如下所示,
{
'product_list.show_date': "May '21",
'product_list.new_users':
{
'product_list.product':
{
'A': None,
'B': 377,
'C': None,
'D': 67,
'E': None,
'F': 1,
'G': None
}
}
}
我想以不存在父键的方式清除它。所以基本上,我想要一个没有嵌套的字典。如下所示,
{
'product_list.show_date': "May '21",
'A': None,
'B': 377,
'C': None,
'D': 67,
'E': None,
'F': 1,
'G': None
}
我正在使用递归函数来执行此操作,但它不是 100% 正确的。
这是我的代码,
def clear_nd(d, nested_dict):
for key in nested_dict:
if type(nested_dict[key]) != dict:
d[key] = nested_dict[key]
elif type(nested_dict[key]) == dict:
nested_dict = nested_dict[key]
clear_nd(d, nested_dict)
return d
d = {}
clear_nd(d, nested_dict)
下面的例子,
nested_dict = {
'product_list.show_date': "May '21",
'product_list.new_users': {
'product_list.product': {
'A': None,
'B': 377,
'C': None,
'D': 67,
'E': None,
'F': 1,
'G': None
},
'prod.product': {
'Alk': None,
'Bay': 377,
'Lent': None,
'R': 67,
'Ter': None,
'Wi': 1,
'e': None
}
},
'duct_list.new_users': {
'pdust.product': {
'H': None,
'y': 377,
'nt': None,
'C': 67,
'sfer': None,
's': 1,
'le': None
}
}
}
Pandas 或任何其他库是否有办法做到这一点。 嵌套字典的结构是动态的,所以我们不知道它有多深。并且键也会改变,所以我们无法事先知道字典中的键是什么。我们将不胜感激。谢谢!!
【问题讨论】:
-
它回答了你的问题吗? stackoverflow.com/questions/52081545/…
标签: python pandas algorithm dataframe dictionary