Python中JSON數(shù)據(jù)處理的完整指南
JSON 是什么
JSON(JavaScript Object Notation)是一種輕量級(jí)數(shù)據(jù)格式,長(zhǎng)得像 Python 的字典和列表:
{
"name": "Alice",
"age": 30,
"skills": ["Python", "Data Science"]
}
Python 自帶神器:json模塊
import json
JSON → Python(反序列化)
用 json.loads() 把 JSON 字符串變成字典:
import json
json_str = '{"name": "Alice", "age": 30, "skills": ["Python", "Data Science"]}'
data = json.loads(json_str)
print(data["name"]) # Alice
print(type(data)) # <class 'dict'>
Python → JSON(序列化)
用 json.dumps() 把 Python 對(duì)象變 JSON 字符串:
person = {
"name": "Bob",
"age": 25,
"skills": ["JavaScript", "React"]
}
json_data = json.dumps(person)
print(json_data)
優(yōu)雅打印 JSON
加 indent 一鍵格式化:
print(json.dumps(person, indent=2))
從文件讀取 JSON
with open('data.json', 'r') as file:
data = json.load(file)
print(data["name"])
把 JSON 寫(xiě)進(jìn)文件
with open('output.json', 'w') as file:
json.dump(person, file, indent=4)
JSON ↔ Python 類型對(duì)照表
| JSON | Python |
|---|---|
| Object | dict |
| Array | list |
| String | str |
| Number | int/float |
| true/false | True/False |
| null | None |
異常處理
解析失敗時(shí)用 try-except 捕獲:
try:
data = json.loads('{"name": "Alice", "age": }') # 非法 JSON
except json.JSONDecodeError as e:
print("解析出錯(cuò):", e)
實(shí)戰(zhàn):抓取在線 API 數(shù)據(jù)
import requests
import json
response = requests.get("https://jsonplaceholder.typicode.com/users")
users = response.json()
for user in users:
print(user['name'], '-', user['email'])
今日總結(jié)
| 任務(wù) | 函數(shù) |
|---|---|
| JSON → Python | json.loads() |
| Python → JSON | json.dumps() |
| 讀文件 | json.load() |
| 寫(xiě)文件 | json.dump() |
到此這篇關(guān)于Python中JSON數(shù)據(jù)處理的完整指南的文章就介紹到這了,更多相關(guān)Python JSON數(shù)據(jù)處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python多線程實(shí)現(xiàn)大文件快速下載的代碼實(shí)現(xiàn)
在互聯(lián)網(wǎng)時(shí)代,文件下載是日常操作之一,尤其是大文件,然而,網(wǎng)絡(luò)條件不穩(wěn)定或帶寬有限時(shí),下載速度會(huì)變得很慢,本文將介紹如何使用 Python 實(shí)現(xiàn)多線程下載,并提供一個(gè)實(shí)戰(zhàn)案例,需要的朋友可以參考下2025-08-08
Python實(shí)現(xiàn)抓取騰訊視頻所有電影的示例代碼
這篇文章主要為大家介紹了如何使用python實(shí)現(xiàn)抓取騰訊視頻所有電影,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04
Python中2種常用數(shù)據(jù)可視化庫(kù)Bokeh和Altair使用示例詳解
本文對(duì)Python中兩個(gè)常用的數(shù)據(jù)可視化庫(kù)?Bokeh?和?Altair?進(jìn)行了比較和探討,通過(guò)對(duì)它們的特點(diǎn)、優(yōu)缺點(diǎn)以及使用示例的詳細(xì)分析,讀者可以更好地了解這兩個(gè)庫(kù)的功能和適用場(chǎng)景,從而更好地選擇合適的庫(kù)來(lái)進(jìn)行數(shù)據(jù)可視化工作,感興趣的朋友跟隨小編一起看看吧2024-04-04
python正則表達(dá)式re.match()匹配多個(gè)字符方法的實(shí)現(xiàn)
這篇文章主要介紹了python正則表達(dá)式re.match()匹配多個(gè)字符方法的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
python傳參時(shí)一個(gè)星號(hào)和兩個(gè)星號(hào)的區(qū)別小結(jié)
在Python中,一個(gè)星號(hào)(*)和兩個(gè)星號(hào)(**)用于函數(shù)定義中的參數(shù)傳遞,本文主要介紹了python傳參時(shí)一個(gè)星號(hào)和兩個(gè)星號(hào)的區(qū)別小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02
安裝Python和pygame及相應(yīng)的環(huán)境變量配置(圖文教程)
下面小編就為大家?guī)?lái)一篇安裝Python和pygame及相應(yīng)的環(huán)境變量配置(圖文教程)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06
Python實(shí)現(xiàn)決策樹(shù)C4.5算法的示例
本篇文章主要介紹了Python實(shí)現(xiàn)決策樹(shù)C4.5算法的示例,詳解的介紹了決策樹(shù)C4.5算法的原理和實(shí)現(xiàn)代碼,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2018-05-05
Python?matplotlib?繪制散點(diǎn)圖詳解建議收藏
在數(shù)據(jù)統(tǒng)計(jì)圖表中,有一種圖表是散列點(diǎn)分布在坐標(biāo)中,反應(yīng)數(shù)據(jù)隨著自變量變化的趨勢(shì)。這篇文章主要介紹了如何通過(guò)matplotlib繪制散點(diǎn)圖,需要的朋友可以參考一下2021-12-12

