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

Python實現(xiàn)將一個帶鍵值特征的JSON數(shù)組轉(zhuǎn)換為JSON對象

 更新時間:2025年11月06日 09:33:58   作者:Humbunklung  
這篇文章主要為大家詳細(xì)介紹了Python實現(xiàn)將一個帶鍵值特征的JSON數(shù)組轉(zhuǎn)換為JSON對象,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下

核心實現(xiàn)方法

方法 1:循環(huán)遍歷構(gòu)建字典(基礎(chǔ)高效)

import json

# 原始 JSON 數(shù)組(示例)
json_array = [
    {"key": "name", "value": "Alice"},
    {"key": "age", "value": 25},
    {"key": "city", "value": "Beijing"}
]

# 轉(zhuǎn)換為字典對象
result_dict = {}
for item in json_array:
    result_dict[item["key"]] = item["value"]

# 轉(zhuǎn)為 JSON 字符串(可選)
json_output = json.dumps(result_dict, indent=4, ensure_ascii=False)
print(json_output)

輸出

{
    "name": "Alice",
    "age": 25,
    "city": "Beijing"
}

特點

  • 邏輯清晰,直接遍歷數(shù)組,逐項提取 keyvalue
  • 適合初學(xué)者或需要顯式控制流程的場景

方法 2:字典推導(dǎo)式(簡潔優(yōu)雅)

result_dict = {item["key"]: item["value"] for item in json_array}
json_output = json.dumps(result_dict, indent=4)

特點

  • 代碼更簡潔,單行完成轉(zhuǎn)換
  • 適用于 Python 3.6+ 環(huán)境

方法 3:使用reduce函數(shù)(函數(shù)式編程)

from functools import reduce
result_dict = reduce(
    lambda obj, item: {**obj, item["key"]: item["value"]},
    json_array,
    {}
)

特點

  • 函數(shù)式編程風(fēng)格,適合復(fù)雜數(shù)據(jù)流處理
  • 可結(jié)合其他高階函數(shù)(如 filter)進(jìn)行數(shù)據(jù)預(yù)處理

關(guān)鍵注意事項

1.鍵名重復(fù)問題

若數(shù)組中存在重復(fù)的 key,后出現(xiàn)的值會覆蓋先前的值。需提前檢查:

keys = [item["key"] for item in json_array]
if len(keys) != len(set(keys)):
    print("存在重復(fù)鍵名!")

2.特殊數(shù)據(jù)類型處理

value 可能是嵌套對象或數(shù)組,轉(zhuǎn)換時會保留原始結(jié)構(gòu)

若需自定義序列化(如處理日期),使用 default 參數(shù):

json.dumps(result_dict, default=lambda x: x.isoformat() if hasattr(x, 'isoformat') else str(x))

3.輸出格式化優(yōu)化

  • indent=4:美化輸出,帶縮進(jìn)
  • ensure_ascii=False:支持中文等非 ASCII 字符
  • sort_keys=True:按鍵名字母排序輸出

完整流程示例

import json

# 輸入數(shù)據(jù)
json_array = [
    {"key": "product", "value": "筆記本電腦"},
    {"key": "price", "value": 5999},
    {"key": "in_stock", "value": True},
    {"key": "specs", "value": {"CPU": "i7", "RAM": "16GB"}}
]

# 轉(zhuǎn)換為字典
result_dict = {item["key"]: item["value"] for item in json_array}

# 輸出為格式化的 JSON 字符串
json_output = json.dumps(
    result_dict,
    indent=4,
    ensure_ascii=False,
    sort_keys=True
)
print(json_output)

輸出

{
    "in_stock": true,
    "price": 5999,
    "product": "筆記本電腦",
    "specs": {
        "CPU": "i7",
        "RAM": "16GB"
    }
}

應(yīng)用場景與擴展

API 數(shù)據(jù)處理:將從服務(wù)端獲取的數(shù)組結(jié)構(gòu)響應(yīng)轉(zhuǎn)為易操作的字典

配置文件生成:將程序中的配置列表轉(zhuǎn)為 JSON 配置文件

結(jié)合 Pandas:若數(shù)據(jù)源是 DataFrame,可直接導(dǎo)出為 JSON:

import pandas as pd
df = pd.DataFrame(json_array)
df.set_index("key")["value"].to_dict()  # 直接轉(zhuǎn)為字典

總結(jié)

方法適用場景優(yōu)勢
循環(huán)遍歷兼容舊版 Python,邏輯清晰易于調(diào)試,顯式控制流程
字典推導(dǎo)式Python 3.6+,代碼簡潔化高效單行實現(xiàn)
reduce 函數(shù)函數(shù)式編程場景,復(fù)雜數(shù)據(jù)處理支持鏈?zhǔn)讲僮骱皖A(yù)處理

選擇方法時:

  • 優(yōu)先推薦 字典推導(dǎo)式(簡潔高效);
  • 若需兼容性或特殊處理,用 循環(huán)遍歷;
  • 高級場景可嘗試 reduce 函數(shù) 或結(jié)合 json.dumps 的參數(shù)定制輸出格式。

到此這篇關(guān)于Python實現(xiàn)將一個帶鍵值特征的JSON數(shù)組轉(zhuǎn)換為JSON對象的文章就介紹到這了,更多相關(guān)Python JSON數(shù)組轉(zhuǎn)JSON對象內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一文教會你pandas?plot各種繪圖

    一文教會你pandas?plot各種繪圖

    這篇文章主要給大家介紹了關(guān)于pandas?plot各種繪圖的相關(guān)資料,文中通過圖文以及實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-03-03
  • python中l(wèi)ist.sort()方法的具體使用

    python中l(wèi)ist.sort()方法的具體使用

    本文詳細(xì)介紹了Python中l(wèi)ist的sort方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • python的數(shù)據(jù)與matlab互通問題:SciPy

    python的數(shù)據(jù)與matlab互通問題:SciPy

    這篇文章主要介紹了python的數(shù)據(jù)與matlab互通問題SciPy,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • python?ast模塊詳析與用法

    python?ast模塊詳析與用法

    這篇文章主要給大家介紹了關(guān)于python?ast模塊詳析與用法的相關(guān)資料, Python的ast(Abstract Syntax Trees,抽象語法樹)模塊是一個內(nèi)置模塊,用于解析Python代碼并生成語法樹,需要的朋友可以參考下
    2023-07-07
  • 詳解python變量與數(shù)據(jù)類型

    詳解python變量與數(shù)據(jù)類型

    這篇文章主要介紹了python變量與數(shù)據(jù)類型的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-08-08
  • Python使用requests xpath 并開啟多線程爬取西刺代理ip實例

    Python使用requests xpath 并開啟多線程爬取西刺代理ip實例

    這篇文章主要介紹了Python使用requests xpath 并開啟多線程爬取西刺代理ip實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • python 內(nèi)置函數(shù)匯總詳解

    python 內(nèi)置函數(shù)匯總詳解

    這篇文章主要介紹了python 內(nèi)置函數(shù)匯總詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • 使用Python封裝excel操作指南

    使用Python封裝excel操作指南

    這篇文章主要給大家介紹了關(guān)于使用Python封裝excel操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Python抽象基類的定義與使用方法

    Python抽象基類的定義與使用方法

    這篇文章主要介紹了Python抽象基類的定義與使用方法,Python的抽象基類是指必須讓繼承它的子類去實現(xiàn)它所要求的抽象方法的類,下面文章內(nèi)容將詳細(xì)介紹相關(guān)資料,需要的朋友可以參考一下
    2021-10-10
  • 使用Python的Supervisor進(jìn)行進(jìn)程監(jiān)控以及自動啟動

    使用Python的Supervisor進(jìn)行進(jìn)程監(jiān)控以及自動啟動

    這篇文章主要介紹了使用Python的Supervisor進(jìn)行進(jìn)程監(jiān)控以及自動啟動,使用python supervisor實現(xiàn),需要的朋友可以參考下
    2014-05-05

最新評論

武鸣县| 安塞县| 久治县| 镇平县| 绥江县| 安陆市| 当雄县| 惠州市| 西丰县| 湄潭县| 林周县| 祁连县| 灵石县| 阿荣旗| 化德县| 湖州市| 惠东县| 淅川县| 怀集县| 亳州市| 弋阳县| 清涧县| 高碑店市| 桂林市| 纳雍县| 绥江县| 富顺县| 家居| 呼玛县| 岳西县| 宝丰县| 保德县| 金阳县| 卓资县| 大邑县| 兴城市| 增城市| 永年县| 治县。| 福泉市| 三明市|