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

python?json?jsonl?的用法詳解

 更新時(shí)間:2024年08月31日 09:23:01   作者:大多_C  
這篇文章主要介紹了python?json?jsonl?的用法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

JSON

JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式,廣泛用于在客戶端和服務(wù)器之間傳輸數(shù)據(jù)。以下是 Python 中使用 JSON 的一些常見用法:

1. 將 Python 對(duì)象轉(zhuǎn)換為 JSON 字符串

使用 json.dumps() 函數(shù)將 Python 對(duì)象(如字典、列表等)轉(zhuǎn)換為 JSON 字符串。

import json

# Python 字典
data = {
    "name": "Alice",
    "age": 30,
    "city": "New York",
    "skills": ["Python", "Machine Learning"]
}

# 轉(zhuǎn)換為 JSON 字符串
json_str = json.dumps(data)
print(json_str)

輸出示例:

{"name": "Alice", "age": 30, "city": "New York", "skills": ["Python", "Machine Learning"]}

2. 將 JSON 字符串解析為 Python 對(duì)象

使用 json.loads() 函數(shù)將 JSON 字符串解析為 Python 對(duì)象(如字典、列表等)。

json_str = '{"name": "Alice", "age": 30, "city": "New York", "skills": ["Python", "Machine Learning"]}'

# 將 JSON 字符串解析為 Python 字典
data = json.loads(json_str)
print(data)

輸出示例:

{'name': 'Alice', 'age': 30, 'city': 'New York', 'skills': ['Python', 'Machine Learning']}

3. 將 Python 對(duì)象寫入 JSON 文件

使用 json.dump() 函數(shù)將 Python 對(duì)象寫入到 JSON 文件中。

import json

data = {
    "name": "Alice",
    "age": 30,
    "city": "New York",
    "skills": ["Python", "Machine Learning"]
}

# 將 Python 對(duì)象寫入 JSON 文件
with open('data.json', 'w') as json_file:
    json.dump(data, json_file)

4. 從 JSON 文件讀取數(shù)據(jù)

使用 json.load() 函數(shù)從 JSON 文件中讀取數(shù)據(jù)并解析為 Python 對(duì)象。

import json

# 從 JSON 文件讀取數(shù)據(jù)
with open('data.json', 'r') as json_file:
    data = json.load(json_file)
    print(data)

輸出示例:

{'name': 'Alice', 'age': 30, 'city': 'New York', 'skills': ['Python', 'Machine Learning']}

5. 自定義 JSON 編碼

如果你有自定義的類對(duì)象并想要將其轉(zhuǎn)換為 JSON,可以通過實(shí)現(xiàn)自定義的編碼器:

import json

class Employee:
    def __init__(self, name, age, position):
        self.name = name
        self.age = age
        self.position = position

# 自定義的 JSON 編碼器
def encode_employee(obj):
    if isinstance(obj, Employee):
        return {'name': obj.name, 'age': obj.age, 'position': obj.position}
    raise TypeError(f"Object of type {obj.__class__.__name__} is not JSON serializable")

# 創(chuàng)建 Employee 對(duì)象
employee = Employee("John", 28, "Software Engineer")

# 使用自定義編碼器將對(duì)象轉(zhuǎn)換為 JSON 字符串
json_str = json.dumps(employee, default=encode_employee)
print(json_str)

輸出示例:

{"name": "John", "age": 28, "position": "Software Engineer"}

6. 格式化 JSON 輸出

使用 json.dumps() 時(shí),可以通過 indent 參數(shù)生成格式化的 JSON 字符串,便于閱讀。

import json

data = {
    "name": "Alice",
    "age": 30,
    "city": "New York",
    "skills": ["Python", "Machine Learning"]
}

# 生成格式化的 JSON 字符串
json_str = json.dumps(data, indent=4)
print(json_str)

輸出示例:

{
    "name": "Alice",
    "age": 30,
    "city": "New York",
    "skills": [
        "Python",
        "Machine Learning"
    ]
}

7. 處理復(fù)雜對(duì)象

如果需要序列化更復(fù)雜的對(duì)象,可以通過自定義 JSONEncoder 類來處理。

import json

class Employee:
    def __init__(self, name, age, position):
        self.name = name
        self.age = age
        self.position = position

class EmployeeEncoder(json.JSONEncoder):
    def default(self, obj):
        if isinstance(obj, Employee):
            return {'name': obj.name, 'age': obj.age, 'position': obj.position}
        return super().default(obj)

employee = Employee("John", 28, "Software Engineer")

# 使用自定義的編碼器將對(duì)象轉(zhuǎn)換為 JSON 字符串
json_str = json.dumps(employee, cls=EmployeeEncoder)
print(json_str)

輸出示例:

{"name": "John", "age": 28, "position": "Software Engineer"}

JSONL

JSONL(JSON Lines)是一種簡單的文件格式,專門用于存儲(chǔ)多個(gè)JSON對(duì)象,每個(gè)對(duì)象占用一行。JSONL文件的擴(kuò)展名通常為 .jsonl 或 .ndjson(Newline Delimited JSON)。這種格式在處理大量結(jié)構(gòu)化數(shù)據(jù)時(shí)非常有效,因?yàn)樗试S逐行讀取和處理數(shù)據(jù)。

下面是JSONL的常見用法示例,包括如何在Python中讀取和寫入JSONL格式的數(shù)據(jù)。

1. JSONL 文件的結(jié)構(gòu)

一個(gè)JSONL文件可能看起來如下:

{"name": "Alice", "age": 30, "city": "New York"}
{"name": "Bob", "age": 25, "city": "Los Angeles"}
{"name": "Charlie", "age": 35, "city": "Chicago"}

每一行都是一個(gè)有效的JSON對(duì)象,行與行之間用換行符 \n 分隔。

2. 讀取 JSONL 文件

使用Python讀取JSONL文件時(shí),可以逐行處理文件中的JSON對(duì)象:

import json

# 讀取 JSONL 文件
with open('data.jsonl', 'r') as jsonl_file:
    for line in jsonl_file:
        # 解析每一行的 JSON 對(duì)象
        data = json.loads(line)
        print(data)

輸出示例:

{'name': 'Alice', 'age': 30, 'city': 'New York'}
{'name': 'Bob', 'age': 25, 'city': 'Los Angeles'}
{'name': 'Charlie', 'age': 35, 'city': 'Chicago'}

3. 寫入 JSONL 文件

寫入JSONL文件時(shí),可以逐行將多個(gè)JSON對(duì)象寫入文件,每個(gè)對(duì)象占用一行:

import json

# 準(zhǔn)備要寫入的多個(gè) JSON 對(duì)象
data_list = [
    {"name": "Alice", "age": 30, "city": "New York"},
    {"name": "Bob", "age": 25, "city": "Los Angeles"},
    {"name": "Charlie", "age": 35, "city": "Chicago"}
]

# 寫入 JSONL 文件
with open('data.jsonl', 'w') as jsonl_file:
    for data in data_list:
        jsonl_file.write(json.dumps(data) + '\n')

4. 追加寫入 JSONL 文件

如果需要追加數(shù)據(jù)到已有的JSONL文件中,可以使用追加模式 'a'

import json

# 要追加寫入的 JSON 對(duì)象
new_data = {"name": "Diana", "age": 28, "city": "Houston"}

# 追加寫入 JSONL 文件
with open('data.jsonl', 'a') as jsonl_file:
    jsonl_file.write(json.dumps(new_data) + '\n')

5. 處理大數(shù)據(jù)集

由于JSONL格式允許逐行讀取和處理數(shù)據(jù),特別適合用于處理大數(shù)據(jù)集。比如當(dāng)數(shù)據(jù)量較大時(shí),可以用下面的方式逐行讀取并處理,而不需要將整個(gè)文件一次性加載到內(nèi)存中:

import json

# 逐行處理大數(shù)據(jù)集
with open('large_data.jsonl', 'r') as jsonl_file:
    for line in jsonl_file:
        data = json.loads(line)
        # 對(duì)每一行的數(shù)據(jù)進(jìn)行處理
        process_data(data)

6. 與Pandas集成

如果你需要將JSONL文件的數(shù)據(jù)加載到Pandas DataFrame中,Pandas的 read_json 方法也支持讀取JSONL格式的數(shù)據(jù):

import pandas as pd

# 使用 Pandas 讀取 JSONL 文件
df = pd.read_json('data.jsonl', lines=True)
print(df)

輸出示例:

      name  age         city
0    Alice   30    New York
1      Bob   25  Los Angeles
2  Charlie   35     Chicago

總結(jié)

JSONL格式是一種非常實(shí)用的數(shù)據(jù)存儲(chǔ)格式,特別適合處理大型、結(jié)構(gòu)化的數(shù)據(jù)集。使用它的主要優(yōu)點(diǎn)包括:

  • 逐行讀?。河行幚泶笪募?jié)省內(nèi)存。
  • 簡便性:每一行都是獨(dú)立的JSON對(duì)象,便于解析和處理。
  • 靈活性:可以很容易地將數(shù)據(jù)追加到已有文件中。

通過上述方法,您可以輕松地在Python中讀取、寫入和處理JSONL格式的數(shù)據(jù)。

到此這篇關(guān)于python json jsonl 的用法詳解的文章就介紹到這了,更多相關(guān)python json jsonl 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實(shí)現(xiàn)端口復(fù)用實(shí)例代碼

    Python實(shí)現(xiàn)端口復(fù)用實(shí)例代碼

    這篇文章主要介紹了Python實(shí)現(xiàn)端口復(fù)用實(shí)例代碼,需要的朋友可以參考下
    2014-07-07
  • Pycharm中的下載安裝、配置與測試方式

    Pycharm中的下載安裝、配置與測試方式

    這篇文章主要介紹了Pycharm中的下載安裝、配置與測試方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 基于Python實(shí)現(xiàn)一鍵找出磁盤里所有貓照

    基于Python實(shí)現(xiàn)一鍵找出磁盤里所有貓照

    最近在整理我磁盤上的照片,發(fā)現(xiàn)不少貓照,突然覺得若能把這些貓照都挑出來,觀察它們的成長軌跡也是一件不錯(cuò)的事情。一張一張的找實(shí)在是太費(fèi)勁了,能不能自動(dòng)化地找出來呢?本文將詳細(xì)為大家講講,需要的可以參考一下
    2022-05-05
  • 使用Python制作一個(gè)批量查詢搜索排名工具

    使用Python制作一個(gè)批量查詢搜索排名工具

    這篇文章主要為大家詳細(xì)介紹了如何使用Python制作一個(gè)批量查詢搜索排名工具,并且不需要花費(fèi)任何費(fèi)用,裝上python開發(fā)環(huán)境即可,需要的可以參考一下
    2023-06-06
  • pytorch 實(shí)現(xiàn)在預(yù)訓(xùn)練模型的 input上增減通道

    pytorch 實(shí)現(xiàn)在預(yù)訓(xùn)練模型的 input上增減通道

    今天小編就為大家分享一篇pytorch 實(shí)現(xiàn)在預(yù)訓(xùn)練模型的 input上增減通道,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 用Pytorch實(shí)現(xiàn)線性回歸模型的步驟

    用Pytorch實(shí)現(xiàn)線性回歸模型的步驟

    線性關(guān)系是一種非常簡單的變量之間的關(guān)系,因變量和自變量在線性關(guān)系的情況下,可以使用線性回歸算法對(duì)一個(gè)或多個(gè)因變量和自變量間的線性關(guān)系進(jìn)行建模,本文主要介紹了如何利用Pytorch實(shí)現(xiàn)線性模型,需要的朋友可以參考下
    2024-01-01
  • Python?enumerate()計(jì)數(shù)器簡化循環(huán)

    Python?enumerate()計(jì)數(shù)器簡化循環(huán)

    這篇文章主要介紹了Python?enumerate()計(jì)數(shù)器簡化循環(huán),enumerate()最大的優(yōu)點(diǎn)就是它返回一個(gè)帶有計(jì)數(shù)器和值的元組,因此我們不必自己增加計(jì)數(shù)器,下面就來看看文章具體對(duì)它的詳細(xì)介紹吧,需要的朋友可以參考一下
    2021-12-12
  • python高階爬蟲實(shí)戰(zhàn)分析

    python高階爬蟲實(shí)戰(zhàn)分析

    這篇文章給大家分享了python高階爬蟲實(shí)戰(zhàn)的相關(guān)實(shí)例內(nèi)容以及技巧分析,有興趣的朋友參考下。
    2018-07-07
  • Python結(jié)合PyQt5實(shí)現(xiàn)MD(Markdown)轉(zhuǎn)DOCX工具

    Python結(jié)合PyQt5實(shí)現(xiàn)MD(Markdown)轉(zhuǎn)DOCX工具

    這篇文章主要為大家詳細(xì)介紹了Python如何結(jié)合PyQt5實(shí)現(xiàn)一個(gè)MD(Markdown)轉(zhuǎn)DOCX工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2025-07-07
  • Python深度學(xué)習(xí)pytorch神經(jīng)網(wǎng)絡(luò)匯聚層理解

    Python深度學(xué)習(xí)pytorch神經(jīng)網(wǎng)絡(luò)匯聚層理解

    通常當(dāng)我們處理圖像時(shí),我們希望逐漸降低隱藏表示的空間分辨率,聚集信息,這樣隨著我們?cè)谏窠?jīng)網(wǎng)絡(luò)層疊的上升,每個(gè)神經(jīng)元對(duì)其敏感的感受野(輸入)就越大
    2021-10-10

最新評(píng)論

团风县| 广饶县| 海阳市| 嘉兴市| 交城县| 乌鲁木齐县| 祁门县| 叙永县| 佛山市| 辽中县| 兰坪| 甘肃省| 嘉兴市| 沁源县| 巴南区| 韶关市| 元氏县| 邢台市| 潞城市| 青川县| 迁西县| 独山县| 抚宁县| 永康市| 定结县| 四会市| 赫章县| 蓬莱市| 神农架林区| 芦山县| 龙泉市| 洛隆县| 邛崃市| 大足县| 夏河县| 大同市| 白朗县| 家居| 江山市| 阳高县| 安徽省|