千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > Python轉(zhuǎn)換JSON完全指南

Python轉(zhuǎn)換JSON完全指南

來(lái)源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-11-24 18:42:56 1700822576

一、Python轉(zhuǎn)換JSON的概念

JavaScript對(duì)象表示法(JSON),是一種輕量級(jí)的數(shù)據(jù)格式,是現(xiàn)代的數(shù)據(jù)交換格式。它基于JavaScript語(yǔ)言的一個(gè)子集,易于人類閱讀和編寫(xiě),同時(shí)也易于機(jī)器解析和生成。Python中,我們可以將Python對(duì)象轉(zhuǎn)換為JSON格式,也可以將JSON格式解析為Python對(duì)象。

二、Python對(duì)象轉(zhuǎn)換為JSON

Python中,我們可以使用json模塊來(lái)執(zhí)行Python對(duì)象轉(zhuǎn)換為JSON格式。json模塊中,有兩個(gè)主要的方法:


    * dumps: 序列化,將Python對(duì)象轉(zhuǎn)換為JSON格式的字符串
    * dump: 序列化,將Python對(duì)象轉(zhuǎn)換為JSON格式的字符串并將其寫(xiě)入文件

示例代碼:


import json

# Python字典
person_dict = {'name': 'Tom', 'age': 25, 'city': 'New York'}

# 轉(zhuǎn)換為JSON
person_json = json.dumps(person_dict)

# 輸出為JSON字符串
print(person_json)

輸出結(jié)果:


{"name": "Tom", "age": 25, "city": "New York"}

三、JSON轉(zhuǎn)換為Python對(duì)象

Python中,我們可以使用json模塊來(lái)執(zhí)行JSON格式轉(zhuǎn)換為Python對(duì)象。json模塊中,有兩個(gè)主要的方法:


    * loads: 反序列化,將JSON格式的字符串轉(zhuǎn)換為Python對(duì)象
    * load: 反序列化,將存儲(chǔ)在文件中的JSON格式的數(shù)據(jù)轉(zhuǎn)換為Python對(duì)象

示例代碼:


import json

# JSON字符串
person_json = '{"name": "Tom", "age": 25, "city": "New York"}'

# 轉(zhuǎn)換為Python字典
person_dict = json.loads(person_json)

# 輸出為Python字典
print(person_dict)

輸出結(jié)果:


{'name': 'Tom', 'age': 25, 'city': 'New York'}

四、Python對(duì)象轉(zhuǎn)換為JSON可選參數(shù)

在轉(zhuǎn)換Python對(duì)象為JSON格式時(shí),我們可以使用一些可選參數(shù)來(lái)格式化JSON字符串。以下是一些常用的可選參數(shù):


    * indent: 縮進(jìn)空格的數(shù)量
    * separators: 分隔符號(hào)
    * sort_keys: 是否按照字母順序?qū)︽I進(jìn)行排序

示例代碼:


import json

# Python字典
person_dict = {'name': 'Tom', 'age': 25, 'city': 'New York'}

# 轉(zhuǎn)換為JSON字符串并格式化
person_json = json.dumps(person_dict, indent=4, separators=(',', ': '), sort_keys=True)

# 輸出為JSON字符串
print(person_json)

輸出結(jié)果:


{
    "age": 25,
    "city": "New York",
    "name": "Tom"
}

五、JSON轉(zhuǎn)換為Python對(duì)象可選參數(shù)

在轉(zhuǎn)換JSON字符串為Python對(duì)象時(shí),我們可以使用一些可選參數(shù)來(lái)更好地解析JSON數(shù)據(jù)。以下是一些常用的可選參數(shù):


    * object_hook: 對(duì)每個(gè)字典進(jìn)行操作的函數(shù)
    * parse_float: 將所有浮點(diǎn)數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)
    * parse_int: 將所有整數(shù)轉(zhuǎn)換為整數(shù)
    * parse_constant: 對(duì)除數(shù)NaN和Infinity之外的其他常量進(jìn)行操作的函數(shù)

示例代碼:


import json

# JSON字符串
person_json = '{"name": "Tom", "age": 25, "city": "New York"}'

# 使用object_hook將JSON轉(zhuǎn)為Python對(duì)象
person_dict = json.loads(person_json, object_hook=lambda d: {k.lower(): v for k, v in d.items()})

# 輸出為Python字典
print(person_dict)

輸出結(jié)果:


{'name': 'Tom', 'age': 25, 'city': 'New York'}

六、python批量處理多個(gè)json文件合并到一個(gè)CSV文件


import csv
import glob
import json

# 獲取JSON文件列表
json_files = glob.glob('*.json')

# 打開(kāi)CSV文件
with open('output.csv', 'w', newline='', encoding='utf-8') as csvfile:
    writer = csv.writer(csvfile, delimiter=',')
     
    # 遍歷JSON文件
    for json_file in json_files:
        with open(json_file, 'r', encoding='utf-8') as f:
            # 讀取JSON文件中的行
            lines = f.readlines()
             
            # 遍歷JSON文件中的行
            for line in lines:
                # 將JSON數(shù)據(jù)轉(zhuǎn)換為Python字典
                data = json.loads(line)
                 
                # 寫(xiě)入CSV文件
                writer.writerow([data['name'], data['age'], data['city']])

以上就是關(guān)于Python轉(zhuǎn)換JSON的完整指南。希望可以幫助你更好地使用Python進(jìn)行JSON格式數(shù)據(jù)處理。
tags: qmetaobject
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
linuxwrite,linuxwrite參數(shù)

linux系統(tǒng)調(diào)用文件函數(shù)write()怎么往文件里寫(xiě)入換行1、通過(guò)write()函數(shù)向文件中寫(xiě)入一行 f=open(rC:\Users\Administrator\Desktop\test.txt詳情>>

2023-11-24 21:02:13
linux寫(xiě)時(shí)拷貝,linux 寫(xiě)時(shí)拷貝技術(shù)

Linux編程文件內(nèi)容復(fù)制linux編程文件可以使用cp命令來(lái)實(shí)現(xiàn)文件復(fù)制。例如,如果要將文件filetxt復(fù)制到文件夾folder2中,可以在終端中輸入以下...詳情>>

2023-11-24 20:45:33
深入了解npm run lint

一、什么是npm run lint?npm run lint是一個(gè)非常強(qiáng)大的命令,它可以自動(dòng)檢查代碼中的潛在錯(cuò)誤和不規(guī)范的格式,從而提供了對(duì)代碼質(zhì)量的保證。npm...詳情>>

2023-11-24 20:12:57
用法介紹plt.errorbar

一、參數(shù)介紹plt.errorbar是matplotlib庫(kù)中的一個(gè)函數(shù),用于繪制帶誤差線的線圖。它的主要參數(shù)有:1. x、y指定數(shù)據(jù)的橫縱坐標(biāo),必須是數(shù)組或者...詳情>>

2023-11-24 20:09:21
Top Time+ 編程框架詳解

一、簡(jiǎn)介T(mén)op Time+ 是一套開(kāi)源的編程框架,目的是為了讓開(kāi)發(fā)者更快速簡(jiǎn)單地構(gòu)建高效可擴(kuò)展的Web應(yīng)用,降低企業(yè)級(jí)Web應(yīng)用的開(kāi)發(fā)難度。它支持常用...詳情>>

2023-11-24 20:05:45