最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于python實(shí)現(xiàn)json/字典數(shù)據(jù)中所有key路徑拼接組合問(wèn)題

 更新時(shí)間:2023年04月18日 08:36:48   作者:IT之一小佬  
這篇文章主要介紹了關(guān)于python實(shí)現(xiàn)json/字典數(shù)據(jù)中所有key路徑拼接組合問(wèn)題,文中有詳細(xì)的代碼說(shuō)明,需要的朋友可以參考下

案例需求:

        在已知的json數(shù)據(jù)或者字典數(shù)據(jù)中,獲取所有key值的路徑拼接值,并能夠根據(jù)拼接路徑獲取對(duì)應(yīng)的值。

示例代碼:

import jmespath
 
data = {
    "id": 1,
    "name": '張三',
    "age": 25,
    "grade": {
        "Chinese": 99,
        "Math": 100
    },
    "records": [
        {
            "Chinese": 98,
            "Math": 99
        },
        {
            "Chinese": 97,
            "Math": 97
        }
    ]
}
 
# 方法一:
# 下面寫法是最笨的方法,當(dāng)?shù)螖?shù)非常多時(shí),要寫好多循環(huán),代碼量也增加了
my_list = []
for key, value in data.items():
    my_list.append(key)
    if type(value) is dict:
        for key2, value2 in data[key].items():
            my_list.append(key + '.' + key2)
print(my_list)
 
 
# 方法二(遞歸實(shí)現(xiàn)):
def get_keys_path(dict_data, enable_index=None):
    def dfs(dict_data, parent=''):
        if not isinstance(dict_data, dict):
            return
        for key, value in dict_data.items():
            if f"{key}.{value}" not in tmp_list:
                tmp_list.append(f"{parent}.{key}")
            if isinstance(value, dict):
                dfs(value, parent=f"{parent}.{key}")
            elif isinstance(value, list):
                num = 0
                for i in value:
                    if enable_index:
                        dfs(i, parent=f"{parent}.{key}[{num}]")
                        # dfs(i, parent=f"{parent}.{key}.{num}")
                    else:
                        dfs(i, parent=f"{parent}.{key}")
                    num += 1
            else:
                pass
 
    tmp_list = []
    dfs(dict_data, parent='')
    if enable_index:
        return [i[1:] for i in tmp_list]
    else:
        return [i[1:] for i in list(set(tmp_list))]
 
 
# 獲取key路徑組合
print(get_keys_path(data, 1))
 
# 獲取key路徑值
print(jmespath.search('records[1].Chinese', data))

運(yùn)行結(jié)果:

到此這篇關(guān)于關(guān)于python實(shí)現(xiàn)json/字典數(shù)據(jù)中所有key路徑拼接組合問(wèn)題的文章就介紹到這了,更多相關(guān)python數(shù)據(jù)中key路徑拼接內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python中break、continue 、exit() 、pass終止循環(huán)的區(qū)別詳解

    python中break、continue 、exit() 、pass終止循環(huán)的區(qū)別詳解

    這篇文章主要介紹了python中break、continue 、exit() 、pass終止循環(huán)的區(qū)別詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python中的__dict__屬性介紹

    python中的__dict__屬性介紹

    這篇文章主要介紹了python中的__dict__屬性介紹,首先通過(guò)將字典轉(zhuǎn)換成對(duì)象的小技巧,展開(kāi)標(biāo)題介紹,具有一定的參考價(jià)值,下文具體的相關(guān)介紹需要的小伙伴可以參考一下
    2022-04-04
  • 使用tensorflow實(shí)現(xiàn)線性svm

    使用tensorflow實(shí)現(xiàn)線性svm

    這篇文章主要為大家詳細(xì)介紹了使用tensorflow實(shí)現(xiàn)線性svm的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • Pycharm編輯器功能之代碼折疊效果的實(shí)現(xiàn)代碼

    Pycharm編輯器功能之代碼折疊效果的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Pycharm編輯器功能之代碼折疊效果的實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Python如何通過(guò)變量ID得到變量的值

    Python如何通過(guò)變量ID得到變量的值

    這篇文章主要介紹了Python如何通過(guò)變量ID得到變量的值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Python簡(jiǎn)直是萬(wàn)能的,這5大主要用途你一定要知道?。ㄍ扑])

    Python簡(jiǎn)直是萬(wàn)能的,這5大主要用途你一定要知道!(推薦)

    這篇文章主要介紹了Python主要用途,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • python爬蟲使用scrapy注意事項(xiàng)

    python爬蟲使用scrapy注意事項(xiàng)

    在本篇文章里小編給大家整理的是一篇關(guān)于python爬蟲使用scrapy注意事項(xiàng)的相關(guān)文章,對(duì)此有興趣的朋友們可以學(xué)習(xí)下。
    2020-11-11
  • python muggle_ocr庫(kù)用法及實(shí)例代碼

    python muggle_ocr庫(kù)用法及實(shí)例代碼

    在本篇文章里小編給大家整理的是一篇關(guān)于python muggle_ocr庫(kù)用法及實(shí)例代碼內(nèi)容,有需要的朋友們可以跟著學(xué)習(xí)參考下。
    2021-07-07
  • Python利用lxml模塊爬取豆瓣讀書排行榜的方法與分析

    Python利用lxml模塊爬取豆瓣讀書排行榜的方法與分析

    這篇文章主要給大家介紹了關(guān)于Python爬蟲利用lxml模塊爬取豆瓣讀書排行榜的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 如何爬取通過(guò)ajax加載數(shù)據(jù)的網(wǎng)站

    如何爬取通過(guò)ajax加載數(shù)據(jù)的網(wǎng)站

    這篇文章主要介紹了如何爬取通過(guò)ajax加載數(shù)據(jù)的網(wǎng)站,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08

最新評(píng)論

五原县| 贵南县| 嘉义县| 六枝特区| 卫辉市| 昌吉市| 顺昌县| 永登县| 上栗县| 长汀县| 长沙县| 栖霞市| 仁化县| 贵阳市| 绥阳县| 胶州市| 大同市| 彭水| 云林县| 濮阳县| 莲花县| 玉山县| 娄烦县| 龙陵县| 榕江县| 安徽省| 临江市| 梁河县| 新泰市| 应用必备| 兴海县| 安陆市| 宁蒗| 呼玛县| 西峡县| 吉林市| 奉节县| 集贤县| 防城港市| 望奎县| 渝中区|