首页  >  问答  >  正文

Python如何地柜解析这种数据类型,data__key__hello = "world"

比如有这么一个字典:

{
    'data__key_hello': "world",
    'data__key_bar': "foo",
    'data__a': "b",
    'b': 'c',
}

转换之后变成

{
    'data': {
        'key': {
            'hello': 'world',
            'bar': 'foo'
        },
        'a': 'b',
    },
    'b': 'c'
}

就是以下划线进行一个分割

黄舟黄舟2712 天前629

全部回复(2)我来回复

  • 世界只因有你

    世界只因有你2017-05-18 10:56:23

    雷雷

    回复
    0
  • 巴扎黑

    巴扎黑2017-05-18 10:56:23

    凑合着用吧

    d = {
        'data__key_hello': "world",
        'data__key_bar': "foo",
        'data__a': "b",
        'b': 'c',
    }
    
    n = {}
    for k, v in d.items():
        keys = k.replace('__', '_').split('_')
        child = n
        for i, key in enumerate(keys):
            child = child.setdefault(key, {} if i < len(keys) - 1 else v)
    
    print n

    回复
    0
  • 取消回复