国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Python JSON 操作中的七個高效小竅門

開發 后端
本文介紹了 Python 中處理 JSON 數據的各種技巧,包括快速入門、美化輸出、處理特殊字符、自定義排序、性能優化、處理復雜數據類型及批量文件讀寫等。

JSON(JavaScript Object Notation)作為一種輕量級的數據交換格式,在各種應用場景中扮演著重要角色。Python 中處理 JSON 數據非常便捷,主要通過內置的 json 模塊來實現。本文將詳細介紹如何使用 Python 進行 JSON 數據的操作,包括基本的序列化與反序列化、美化輸出、處理特殊字符、自定義排序、優化性能、處理復雜數據類型以及批量文件讀寫等內容。

1. 快速入門:認識 JSON

JSON 是一種輕量級的數據交換格式。它基于 JavaScript 的一個子集,但獨立于語言和平臺。Python 中處理 JSON 數據非常方便,主要通過 json 模塊完成。

示例代碼:

import json

# 創建一個簡單的字典
data = {
    "name": "Alice",
    "age": 30,
    "is_student": False,
    "hobbies": ["reading", "traveling", "coding"]
}

# 將 Python 對象轉換為 JSON 字符串
json_string = json.dumps(data)
print(json_string)

# 將 JSON 字符串轉換回 Python 對象
parsed_data = json.loads(json_string)
print(parsed_data)

輸出:

{"name": "Alice", "age": 30, "is_student": false, "hobbies": ["reading", "traveling", "coding"]}
{'name': 'Alice', 'age': 30, 'is_student': False, 'hobbies': ['reading', 'traveling', 'coding']}

2. 美化輸出:讓 JSON 更好看

直接打印出來的 JSON 字符串可能不夠美觀,尤其是在調試時。使用 json.dumps() 方法的 indent 參數可以生成易讀的格式。

示例代碼:

pretty_json = json.dumps(data, indent=4)
print(pretty_json)

輸出:

{
    "name": "Alice",
    "age": 30,
    "is_student": false,
    "hobbies": [
        "reading",
        "traveling",
        "coding"
    ]
}

3. 處理特殊字符:避免編碼問題

在處理包含特殊字符或非 ASCII 字符的 JSON 數據時,可能會遇到編碼問題。設置 ensure_ascii=False 可以讓非 ASCII 字符正確顯示。

示例代碼:

special_data = {
    "message": "你好,世界!",
    "emoji": "??"
}

json_string = json.dumps(special_data, ensure_ascii=False)
print(json_string)

輸出:

{"message": "你好,世界!", "emoji": "??"}

4. 自定義排序:按照特定順序排序鍵值

默認情況下,json.dumps() 會按照字典的鍵值順序輸出 JSON。如果想自定義排序規則,可以通過傳遞 sort_keys=True 參數實現。

示例代碼:

sorted_json = json.dumps(data, indent=4, sort_keys=True)
print(sorted_json)

輸出:

{
    "age": 30,
    "hobbies": [
        "reading",
        "traveling",
        "coding"
    ],
    "is_student": false,
    "name": "Alice"
}

5. 高效序列化:優化性能

在處理大量數據時,序列化和反序列化的性能至關重要。json 模塊提供了 ensure_ascii 和 separators 等參數來優化性能。

示例代碼:

# 使用 separators 參數去除多余的空格
optimized_json = json.dumps(data, separators=(',', ':'))
print(optimized_json)

輸出:

{"name":"Alice","age":30,"is_student":false,"hobbies":["reading","traveling","coding"]}

6. 自定義序列化:處理復雜數據類型

Python 中的某些數據類型(如 datetime 對象)默認無法被 json.dumps() 序列化。這時可以自定義序列化函數來處理這些復雜數據類型。

示例代碼:

from datetime import datetime

# 定義一個自定義的序列化函數
def custom_serializer(obj):
    if isinstance(obj, datetime):
        return obj.isoformat()
    raise TypeError("Type not serializable")

# 創建一個包含 datetime 對象的字典
complex_data = {
    "name": "Alice",
    "birthdate": datetime(1990, 1, 1),
    "is_student": False,
    "hobbies": ["reading", "traveling", "coding"]
}

# 使用自定義序列化函數
json_string = json.dumps(complex_data, default=custom_serializer)
print(json_string)

輸出:

{"name": "Alice", "birthdate": "1990-01-01T00:00:00", "is_student": false, "hobbies": ["reading", "traveling", "coding"]}

7. 批量處理:優化文件讀寫

在處理大型 JSON 文件時,逐行讀取和寫入可以顯著提高效率。json 模塊提供了 load() 和 dump() 方法來處理文件。

示例代碼:

# 寫入 JSON 文件
with open('data.json', 'w') as file:
    json.dump(data, file, indent=4)

# 讀取 JSON 文件
with open('data.json', 'r') as file:
    loaded_data = json.load(file)
    print(loaded_data)

輸出:

{'name': 'Alice', 'age': 30, 'is_student': False, 'hobbies': ['reading', 'traveling', 'coding']}

實戰案例:處理天氣 API 數據

假設我們需要從一個天氣 API 獲取當前天氣信息,并將其保存到本地文件中。

示例代碼:

import requests
import json

# API 請求 URL
url = "https://api.openweathermap.org/data/2.5/weather?q=Beijing&appid=YOUR_API_KEY"

# 發送 GET 請求
response = requests.get(url)

# 檢查響應狀態碼
if response.status_code == 200:
    # 解析 JSON 數據
    weather_data = response.json()

    # 將數據保存到文件
    with open('weather.json', 'w') as file:
        json.dump(weather_data, file, indent=4)
else:
    print("Error:", response.status_code)

# 讀取并打印數據
with open('weather.json', 'r') as file:
    loaded_weather_data = json.load(file)
    print(loaded_weather_data)

輸出:

{
    "coord": {
        "lon": 116.4074,
        "lat": 39.9042
    },
    "weather": [
        {
            "id": 802,
            "main": "Clouds",
            "description": "scattered clouds",
            "icon": "03n"
        }
    ],
    ...
}

在這個案例中,我們首先發送了一個 GET 請求來獲取北京的天氣數據。然后將返回的 JSON 數據保存到本地文件 weather.json 中,并通過 json.load() 方法讀取文件內容。這樣不僅可以方便地查看數據,還可以用于后續的數據處理和分析。

總結

本文介紹了 Python 中處理 JSON 數據的各種技巧,包括快速入門、美化輸出、處理特殊字符、自定義排序、性能優化、處理復雜數據類型及批量文件讀寫等。通過這些技巧,可以更加高效地管理和操作 JSON 數據。

責任編輯:趙寧寧 來源: 手把手PythonAI編程
相關推薦

2020-09-13 09:14:35

PythonJSON開發

2024-11-06 14:26:40

2010-09-26 14:57:40

控制IT預算

2020-07-19 08:11:54

Python代碼開發

2025-08-04 07:20:00

多云戰略應用組合管理APM

2024-06-24 10:31:46

2023-03-22 14:07:00

機器人

2009-02-16 16:49:53

DBA經驗

2022-04-14 10:40:11

領導者IT團隊遠程團隊

2013-07-29 10:39:39

App竅門

2022-08-20 19:12:22

編程竅門

2009-10-09 13:33:00

自學CCNACCNA

2010-09-01 09:39:07

CSS

2021-10-18 13:26:15

大數據數據分析技術

2020-03-23 10:59:52

CISO網絡安全漏洞

2009-06-23 13:32:48

JavaScript初竅門

2010-05-26 10:10:53

openssh

2024-09-25 08:00:00

Python文件處理

2009-07-14 10:21:19

Eclipse 3.5

2013-07-05 16:08:40

開發效率
點贊
收藏

51CTO技術棧公眾號

国产成人免费电影| 欧美日韩极品在线观看一区| 欧美四级电影在线观看| 久久久久久久久久伊人| 老色鬼在线视频| 国产乱码一区二区三区| 国产精品吹潮在线观看| 欧洲不卡av| 久久毛片高清国产| 成人av网站观看| 岛国在线视频网站| 亚洲va韩国va欧美va精品 | 一本色道久久综合狠狠躁篇怎么玩 | 日韩欧美成人精品| 奇米影视亚洲色图| 久久精品影视| 亚洲视频一区二区在线| 裸体裸乳免费看| 久久99国内精品| 亚洲激情啪啪| 黄色网在线免费看| 99热精品久久| 国产精品专区在线| 在线观看91av| 欧美色图首页| 麻豆视频免费在线观看| 麻豆精品视频| 欧美中文字幕一区| 国产精品亚洲产品| 二区在线视频| 神马影院午夜我不卡影院| 亚洲精品久久久久中文字幕欢迎你 | 日韩专区欧美专区| 丰满人妻中伦妇伦精品app| 亚洲免费高清视频在线| 18视频在线观看| 国产91色在线|免| 久久精品噜噜噜成人av农村| 欧美日韩激情视频在线观看| 欧美日韩亚洲高清一区二区| 91成人在线精品视频| 久久久久九九九| 亚洲aaa精品| 国产精品va视频| 99热都是精品| 欧美影视一区二区三区| 日本美女久久| 亚洲一区www| 久久精品xxxxx| 久久久久国产精品视频| 国产精品国产福利国产秒拍 | 日韩一区自拍| 亚洲欧美二区三区| 成全电影大全在线观看| 不卡视频一区| 香港成人在线视频| 国产激情综合| 麻豆一区二区三区视频| 精品中文字幕乱| jiyouzz国产精品久久| sm在线观看| 亚洲成人一区二区三区| 欧美视频在线视频| 免费黄色成人| 人人在线97| 国产精品成人播放| 色天下一区二区三区| 国产成人精品电影| 国产一区999| 婷婷免费在线视频| 久久久999精品免费| 国产一区日韩欧美| 超碰网在线观看| 这里只有精品电影| 欧美手机在线| 免费看的黄色大片| 欧美精品一区二区三区在线播放| 99国产精品免费网站| 99热一区二区三区| 午夜精品爽啪视频| 精品欧美久久| av天堂永久资源网| 国产一区二区久久精品| 麻豆精品久久久| 国产中文字幕在线观看| 国产在线播放不卡| 亚洲蜜臀av乱码久久精品| xvideos.蜜桃一区二区| 日韩一级性生活片| 亚洲欧美成人一区二区在线电影| 日韩一区精品字幕| 91网在线播放| 成人免费视频网站| 日韩欧美精品网址| 久久久久av| 2020中文字幕在线播放| 国产一区玩具在线观看| 一区二区三区在线免费视频| 免费一级欧美在线大片| 亚洲免费在线精品一区| 亚洲激情国产精品| 国产美女精品在线| 朝桐光一区二区| 国产羞羞视频| 精品国产乱码久久久久| 精品嫩草影院久久| 成人午夜电影小说| 久久99视频| 免费在线观看黄| 欧美极品少妇无套实战| 中文字幕亚洲一区在线观看| 狠狠色伊人亚洲综合成人| 国产69精品久久| 二区中文字幕| 日本欧洲国产一区二区| 久久国产夜色精品鲁鲁99| 国精品产品一区| 久草影视在线| 色播五月综合| 欧美精品做受xxx性少妇| 亚洲精品国产电影| 国产成人高清在线| 日韩一区二区久久| 国产欧美一区二区三区精品观看| 一区二区三区短视频| 色网站在线免费观看| 牛夜精品久久久久久久| 亚洲一区二区三区加勒比| 亚洲va欧美va国产综合久久| 97精品国产97久久久久久免费| 欧美精品一区二区三区很污很色的 | 日韩欧美在线视频免费观看| 卡通欧美亚洲| 激情av在线| 第一av在线| 91九色美女在线视频| 操你啦视频在线| 色开心亚洲综合| 国产福利在线播放麻豆| 亚洲欧美一区二区三区在线播放| 91九色porny视频| 亚洲黄色av网址| 天堂av在线网站| 日本肉体xxxx裸体xxx免费| 国产自产在线视频| 国产不卡一区二区视频| 欧美久久久久久久久久久久久| 人妻av无码专区| www.欧美日本| 人成网站免费观看| 国产青青草在线| 久草免费在线色站| 国产欧美在线观看免费| 美女av一区| 欧美日韩国产一区精品一区| 亚洲永久免费| 久久久久久久久久久久久夜| 最新日韩av在线| 欧美日韩激情一区| 一本大道久久加勒比香蕉| 久久久在线观看| 99影视tv| 欧美日韩国产精品一区二区| 亚洲精品免费在线视频| 美女久久久久久久久久久| 午夜精品久久久久久久99热浪潮 | 亚洲精选91| 大片免费在线看视频| 黄色影视在线观看| 亚洲网站在线看| 欧美视频一二三区| 欧美日韩亚洲精品内裤| 国产免费久久精品| 国产精品美女久久久久久久网站| 亚洲女人小视频在线观看| 欧美精品一二三| 蜜臀久久99精品久久久久久宅男 | 欧美xxxx做受欧美88bbw| 综合久久2023| 中文字幕一区二区三三| 成人v精品蜜桃久久一区| 懂色aⅴ精品一区二区三区蜜月| 亚洲香蕉成人av网站在线观看| 国产精品视频播放| 国产原创popny丨九色| 日本aaa在线观看| 青春草在线免费视频| 视频一区中文| 久久91精品久久久久久秒播 | 一本色道综合亚洲| 亚洲视频你懂的| 欧美中文字幕一区| 亚洲第一区在线| 国产亚洲欧美视频| 国产精品第七十二页| 91久久精品一区二区别| 激情五月婷婷六月| 新版中文字幕在线资源| 成人高清在线| 亚洲天堂一区二区|