亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

案例需求:

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

示例代碼:

import jmespath
 
data = {
    "id": 1,
    "name": '張三',
    "age": 25,
    "grade": {
        "Chinese": 99,
        "Math": 100
    },
    "records": [
        {
            "Chinese": 98,
            "Math": 99
        },
        {
            "Chinese": 97,
            "Math": 97
        }
    ]
}
 
# 方法一:
# 下面寫法是最笨的方法,當?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)
 
 
# 方法二(遞歸實現(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))

運行結(jié)果:

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

相關(guān)文章

  • python數(shù)字圖像處理實現(xiàn)圖像的形變與縮放

    python數(shù)字圖像處理實現(xiàn)圖像的形變與縮放

    這篇文章主要為大家介紹了python數(shù)字圖像處理實現(xiàn)圖像的形變與縮放示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • python 實現(xiàn)mysql增刪查改示例代碼

    python 實現(xiàn)mysql增刪查改示例代碼

    python中可以通過pymysql實現(xiàn)MySQL數(shù)據(jù)庫的連接,并實現(xiàn)數(shù)據(jù)庫的各種操作,這篇文章主要給大家介紹了關(guān)于pymsql實現(xiàn)增刪改查的示例代碼,需要的朋友可以參考下
    2021-11-11
  • 使用Python操作MySql數(shù)據(jù)庫和MsSql數(shù)據(jù)庫

    使用Python操作MySql數(shù)據(jù)庫和MsSql數(shù)據(jù)庫

    這篇文章介紹了使用Python操作MySql數(shù)據(jù)庫和MsSql數(shù)據(jù)庫的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • 利用Python如何批量修改數(shù)據(jù)庫執(zhí)行Sql文件

    利用Python如何批量修改數(shù)據(jù)庫執(zhí)行Sql文件

    這篇文章主要給大家介紹了關(guān)于利用Python如何批量修改數(shù)據(jù)庫執(zhí)行Sql文件的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-07-07
  • pandas進階教程之Dataframe的apply方法

    pandas進階教程之Dataframe的apply方法

    DataFrame中的apply方法就是將函數(shù)應(yīng)用到由列或行形成的一維數(shù)組上,下面這篇文章主要給大家介紹了關(guān)于pandas進階教程之Dataframe的apply方法的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • NLTK 3.2.4 環(huán)境搭建教程

    NLTK 3.2.4 環(huán)境搭建教程

    這篇文章主要為大家詳細介紹了NLTK 3.2.4 環(huán)境搭建教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • Python封裝數(shù)據(jù)庫連接池詳解

    Python封裝數(shù)據(jù)庫連接池詳解

    這篇文章主要介紹了Python封裝數(shù)據(jù)庫連接池詳解,文章圍繞主題相關(guān)內(nèi)容展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-06-06
  • Anaconda+VSCode配置tensorflow開發(fā)環(huán)境的教程詳解

    Anaconda+VSCode配置tensorflow開發(fā)環(huán)境的教程詳解

    Anaconda是一個開源的python發(fā)行版本,是現(xiàn)在比較流行的python數(shù)據(jù)科學平臺,可以對python的科學包做到有效管理。這篇文章主要介紹了Anaconda+VSCode配置tensorflow開發(fā)環(huán)境,需要的朋友可以參考下
    2020-03-03
  • python實現(xiàn)微信定時每天和女友發(fā)送消息

    python實現(xiàn)微信定時每天和女友發(fā)送消息

    這篇文章主要為大家詳細介紹了python實現(xiàn)微信定時每天和女友發(fā)送消息,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Python數(shù)據(jù)獲取實現(xiàn)圖片數(shù)據(jù)提取

    Python數(shù)據(jù)獲取實現(xiàn)圖片數(shù)據(jù)提取

    本文主要介紹了Python數(shù)據(jù)獲取實現(xiàn)圖片數(shù)據(jù)提取,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05

最新評論