Wie analysiert Python diesen Datentyp?
黄舟
黄舟 2017-05-18 10:54:23
0
2
630

Zum Beispiel gibt es so ein Wörterbuch:

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

Nach der Umwandlung wird daraus

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

Es wird durch einen Unterstrich getrennt

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

Antworte allen(2)
世界只因有你
# coding: utf-8

def parse_dict(obj={}):
    result = {}
    for key in obj:
        value = obj[key]
        parse_key_value(key, value, result)                
    return result

def parse_key_value(key, value, result={}):
    if not key:
        return

    head = ''
    while 1:
        head, _, tail = key.partition('_') 
        if head:
            break
        key = tail

    if head not in result:
        if tail:
            result[head] = {} 
        else:
            result[head] = value
            return 
    
    parse_key_value(tail, value, result[head])

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

print parse_dict(obj)
巴扎黑

凑合着用吧

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!