欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python中glom用法的實現(xiàn)

 更新時間:2025年06月04日 09:36:04   作者:Code_Geo  
glom是Python庫,用于簡化嵌套數(shù)據(jù)操作,支持路徑訪問、數(shù)據(jù)轉換、容錯處理,下面就來介紹一下glom用法,具有一定的參考價值,感興趣的可以了解一下

glom

glom 是 Python 中一個用于簡化嵌套數(shù)據(jù)結構操作的庫,它的核心目標是讓開發(fā)者以更直觀、簡潔的方式處理和轉換復雜的字典、列表或對象嵌套數(shù)據(jù)

1. 核心功能?

(1) 路徑式數(shù)據(jù)訪問?

無需多層嵌套的 get() 或循環(huán),直接通過路徑表達式訪問深層數(shù)據(jù)

from glom import glom

data = {
    "user": {
        "name": "Alice",
        "address": {
            "city": "Shanghai",
            "zip": 200000
        }
    }
}
# 傳統(tǒng)方式:多層 get() 或鍵訪問
city = data["user"]["address"]["city"]
# glom 方式:路徑表達式
city = glom(data, "user.address.city")  # 輸出 "Shanghai"

(2) 數(shù)據(jù)轉換與結構重組?

將原始數(shù)據(jù)按需轉換為新的結構

target_spec = {
    "username": "user.name",
    "location": ("user.address.city", str.upper)  # 對值進行處理
}

result = glom(data, target_spec)
# 輸出:{'username': 'Alice', 'location': 'SHANGHAI'}

(3) 容錯處理?

自動處理路徑缺失或異常,避免 KeyError 或 TypeError

from glom import Coalesce

# 如果路徑不存在,返回默認值
result = glom(data, Coalesce("user.age", default=18))

2. 主要應用場景?

?(1) 處理 API 響應?

簡化 JSON 數(shù)據(jù)的提取和轉換

api_response = {
    "data": {
        "items": [
            {"id": 1, "title": "Item 1"},
            {"id": 2, "title": "Item 2"}
        ]
    }
}
# 提取所有標題
titles = glom(api_response, ("data.items", ["title"]))
# 輸出:['Item 1', 'Item 2']

(2) 數(shù)據(jù)清洗?

將原始數(shù)據(jù)轉換為規(guī)范化的結構

raw_data = {
    "name": "Bob",
    "details": {"age": 30, "email": "bob@example.com"}
}

spec = {
    "full_name": "name",
    "contact": "details.email",
    "metadata": ("details", {"age": "age"})
}

cleaned = glom(raw_data, spec)
# 輸出:{'full_name': 'Bob', 'contact': 'bob@example.com', 'metadata': {'age': 30}}

(3) 復雜對象操作?

處理嵌套對象屬性(如 ORM 模型、類實例)

class User:
    def __init__(self, name, profile):
        self.name = name
        self.profile = profile

class Profile:
    def __init__(self, level):
        self.level = level
user = User("Charlie", Profile(5))
level = glom(user, "profile.level")  # 輸出 5

3. 高級特性?

?(1) 類型處理(T 構造器)

??在路徑中直接調用類型方法

from glom import T

data = {"value": "123"}
result = glom(data, ("value", T(int)))  # 輸出 123(字符串轉整數(shù))

(2) 迭代與映射處理?

批量處理列表或字典中的元素

data = {"numbers": [1, 2, 3]}
spec = ("numbers", [lambda x: x * 2])
result = glom(data, spec)  # 輸出 [2, 4, 6]

(3) 條件過濾?

結合 Check 或 Match 實現(xiàn)條件邏輯

from glom import Check, Match

data = {"scores": [85, 92, 78, 60]}
spec = ("scores", [Check(lambda x: x >= 90, default=None)])
result = glom(data, spec)  # 輸出 [92]

4. 對比傳統(tǒng)方法

操作??傳統(tǒng)代碼??glom 代碼?
提取嵌套字段data.get(‘a’, {}).get(‘b’, {}).get(‘c’)glom(data, ‘a.b.c’)
轉換列表元素[x[‘val’]*2 for x in data[‘items’]]glom(data, (‘items’, [‘val’], lambda x: x*2))
容錯處理多層 try-except 或 if-else 嵌套glom(data, Coalesce(‘path’, default=0))

到此這篇關于python中glom用法的實現(xiàn)的文章就介紹到這了,更多相關python glom用法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家! 

您可能感興趣的文章:

相關文章

  • Python讀取文件的三種方式總結

    Python讀取文件的三種方式總結

    Python的文本處理是經(jīng)常碰到的一個問題,非常重要的,這篇文章主要和大家分享的是3個Python讀取文本文件內容的常用方法,希望對大家深入學習Python有所幫助
    2023-07-07
  • Python中對對象列表進行排序的多種方式實現(xiàn)

    Python中對對象列表進行排序的多種方式實現(xiàn)

    在軟件開發(fā)中,我們經(jīng)常需要對數(shù)據(jù)進行排序以滿足特定的需求,在 Python 中,排序是一個常見的操作,可以通過多種方式實現(xiàn),需要的朋友可以參考下
    2025-01-01
  • Python的Flask框架Request請求對象詳解

    Python的Flask框架Request請求對象詳解

    這篇文章主要介紹了Python的Flask框架Request請求對象詳解,Flask是一個輕量級的基于Python的web框架,使用 method 屬性可以操作當前請求方法,通過使用 form 屬性處理表單數(shù)據(jù),需要的朋友可以參考下
    2023-08-08
  • 詳解Python函數(shù)式編程—高階函數(shù)

    詳解Python函數(shù)式編程—高階函數(shù)

    這篇文章主要介紹了Python函數(shù)式編程—高階函數(shù),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • python列表操作之extend和append的區(qū)別實例分析

    python列表操作之extend和append的區(qū)別實例分析

    這篇文章主要介紹了python列表操作之extend和append的區(qū)別,實例分析了extend方法和append方法使用上的區(qū)別,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • python中sklearn庫predict及python sklearn linearmodel(安裝過程)

    python中sklearn庫predict及python sklearn linearmodel(

    Scikit-learn(sklearn)是機器學習中常用的第三方模塊,對常用的機器學習方法進行了封裝,包括回歸(Regression)、降維(Dimensionality Reduction)、分類(Classfication)、聚類(Clustering)等方法,今天小編給大家分享python中sklearn庫predict的問題,感興趣的朋友一起看看吧
    2024-02-02
  • Pandas缺失值2種處理方式代碼實例

    Pandas缺失值2種處理方式代碼實例

    這篇文章主要介紹了Pandas缺失值2種處理方式代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • Python如何使用Pandas庫從Excel文件中提取數(shù)據(jù)

    Python如何使用Pandas庫從Excel文件中提取數(shù)據(jù)

    今天我要分享一個超級實用的Python技巧:如何用pandas庫從Excel文件中提取我們需要的數(shù)據(jù)列,這個技能在工作中特別有用,比如處理學生成績表、客戶名單等Excel數(shù)據(jù)時,可以快速獲取關鍵信息,需要的朋友可以參考下
    2025-04-04
  • Django model序列化為json的方法示例

    Django model序列化為json的方法示例

    這篇文章主要介紹了Django model序列化為json的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • python實戰(zhàn)練習做一個隨機點名的程序

    python實戰(zhàn)練習做一個隨機點名的程序

    讀萬卷書不如行萬里路,只學書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Python實現(xiàn)一個隨機點名的程序,大家可以在過程中查缺補漏,提升水平
    2021-10-10

最新評論