python中文词典构建_从扁平字典创建嵌套字典

我有一个扁平的字典,我想把它做成一个嵌套的字典flat = {'X_a_one': 10,

'X_a_two': 20,

'X_b_one': 10,

'X_b_two': 20,

'Y_a_one': 10,

'Y_a_two': 20,

'Y_b_one': 10,

'Y_b_two': 20}

我想把它转换成表格

^{pr2}$

平面词典的结构是这样的,不应该有任何歧义的问题。我希望它适用于任意深度的字典,但性能并不是真正的问题。我见过很多方法可以扁平化嵌套字典,但基本上没有一种方法用于嵌套扁平化字典。字典中存储的值要么是标量,要么是字符串,永远不可编辑。在

到目前为止,我有一些可以接受输入的东西test_dict = {'X_a_one': '10',

'X_b_one': '10',

'X_c_one': '10'}

到输出端test_out = {'X': {'a_one': '10',

'b_one': '10',

'c_one': '10'}}

使用代码def nest_once(inp_dict):

out = {}

if isinstance(inp_dict, dict):

for key, val in inp_dict.items():

if '_' in key:

head, tail = key.split('_', 1)

if head not in out.keys():

out[head] = {tail: val}

else:

out[head].update({tail: val})

else:

out[key] = val

return out

test_out = nest_once(test_dict)

但是我很难弄清楚如何把它变成递归地创建字典的所有级别的东西。在

任何帮助都将不胜感激!在

(至于我为什么要这样做:我有一个结构相当于嵌套dict的文件,我想把这个文件的内容存储在NetCDF文件的attributes字典中,以后再检索它。但是NetCDF只允许您将平面字典作为属性,所以我想取消对先前存储在NetCDF文件中的字典的格式化。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值