国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

Python如何地柜解析這種數據類型,data__key__hello = "world"

瀏覽:110日期:2022-07-13 08:38:24

問題描述

比如有這么一個字典:

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

轉換之后變成

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

就是以下劃線進行一個分割

問題解答

回答1:

# coding: utf-8def parse_dict(obj={}): result = {} for key in obj:value = obj[key]parse_key_value(key, value, result) return resultdef parse_key_value(key, value, result={}): if not key:return head = ’’ while 1:head, _, tail = key.partition(’_’) if head: breakkey = 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)回答2:

湊合著用吧

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

標簽: Python 編程
主站蜘蛛池模板: 饶阳县| 庆元县| 海安县| 龙陵县| 承德市| 富阳市| 黑水县| 永川市| 达孜县| 昌平区| 东光县| 于田县| 南漳县| 嘉善县| 清涧县| 治县。| 吴江市| 罗江县| 灵山县| 荃湾区| 铁岭市| 梁山县| 平果县| 洛宁县| 安乡县| 武隆县| 廉江市| 嵩明县| 定州市| 石渠县| 浮山县| 千阳县| 淳化县| 喀喇沁旗| 丹凤县| 铜陵市| 江阴市| 大新县| 阿坝| 綦江县| 苍溪县|