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

python?json?jsonl?的用法詳解

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

JSON

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

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

使用 json.dumps() 函數(shù)將 Python 對象(如字典、列表等)轉(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 對象

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

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 對象寫入 JSON 文件

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

import json

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

# 將 Python 對象寫入 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 對象。

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 編碼

如果你有自定義的類對象并想要將其轉(zhuǎn)換為 JSON,可以通過實現(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 對象
employee = Employee("John", 28, "Software Engineer")

# 使用自定義編碼器將對象轉(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() 時,可以通過 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. 處理復雜對象

如果需要序列化更復雜的對象,可以通過自定義 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")

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

輸出示例:

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

JSONL

JSONL(JSON Lines)是一種簡單的文件格式,專門用于存儲多個JSON對象,每個對象占用一行。JSONL文件的擴展名通常為 .jsonl 或 .ndjson(Newline Delimited JSON)。這種格式在處理大量結(jié)構(gòu)化數(shù)據(jù)時非常有效,因為它允許逐行讀取和處理數(shù)據(jù)。

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

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

一個JSONL文件可能看起來如下:

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

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

2. 讀取 JSONL 文件

使用Python讀取JSONL文件時,可以逐行處理文件中的JSON對象:

import json

# 讀取 JSONL 文件
with open('data.jsonl', 'r') as jsonl_file:
    for line in jsonl_file:
        # 解析每一行的 JSON 對象
        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文件時,可以逐行將多個JSON對象寫入文件,每個對象占用一行:

import json

# 準備要寫入的多個 JSON 對象
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 對象
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ù)集。比如當數(shù)據(jù)量較大時,可以用下面的方式逐行讀取并處理,而不需要將整個文件一次性加載到內(nèi)存中:

import json

# 逐行處理大數(shù)據(jù)集
with open('large_data.jsonl', 'r') as jsonl_file:
    for line in jsonl_file:
        data = json.loads(line)
        # 對每一行的數(shù)據(jù)進行處理
        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ù)據(jù)存儲格式,特別適合處理大型、結(jié)構(gòu)化的數(shù)據(jù)集。使用它的主要優(yōu)點包括:

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

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

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

相關(guān)文章

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

    Python實現(xiàn)端口復用實例代碼

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Python深度學習pytorch神經(jīng)網(wǎng)絡匯聚層理解

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

最新評論

瓮安县| 离岛区| 会同县| 淮北市| 化德县| 株洲县| 灵丘县| 来宾市| 临西县| 鄄城县| 莱州市| 台东市| 同江市| 瑞金市| 九寨沟县| 阿拉善右旗| 江西省| 正定县| 北票市| 开封市| 黑河市| 松原市| 通辽市| 长春市| 鄂托克旗| 镶黄旗| 永寿县| 理塘县| 黄石市| 白山市| 屯昌县| 禹州市| 湖南省| 佳木斯市| 扬中市| 永吉县| 射洪县| 孝义市| 夹江县| 静安区| 枣阳市|