国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python 中的 JSON 操作:簡單、高效的數(shù)據(jù)交換格式

這篇具有很好參考價(jià)值的文章主要介紹了Python 中的 JSON 操作:簡單、高效的數(shù)據(jù)交換格式。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在現(xiàn)代的數(shù)據(jù)交換和存儲中,JSON(JavaScript Object Notation)作為一種輕量級的數(shù)據(jù)交換格式,備受青睞。它不僅易于閱讀和理解,還可以靈活地表達(dá)和存儲高維數(shù)據(jù)。本文將介紹如何在 Python 中操作 JSON 文件,實(shí)現(xiàn)數(shù)據(jù)的序列化和反序列化。

1. JSON 數(shù)據(jù)格式

JSON 格式采用鍵值對的方式表達(dá)信息。它的值可以是對象、數(shù)組、字符串、整數(shù)、浮點(diǎn)數(shù)、布爾型或空值。下面是一個(gè) JSON 數(shù)據(jù)的例子:

{
    "name": "kira",
    "age": 18,
    "hobby": ["唱歌", "吹牛"],
    "friends": [
        {"name": "劉德華"},
        {"name": "梁朝偉"}
    ]
}

在實(shí)際工作中,我們可以根據(jù)需要擴(kuò)展和定制這種數(shù)據(jù)格式,以適應(yīng)不同的場景和業(yè)務(wù)需求。

2. Python 操作 JSON 文件

Python 提供了內(nèi)置的 json 模塊,用于解析和操作 JSON 數(shù)據(jù)。

2.1 JSON 反序列化為 Python 對象

將 JSON 數(shù)據(jù)反序列化為 Python 對象是常見的操作,可以利用 json.loads() 方法實(shí)現(xiàn)。

import json

json_str = '{"name":"kira","age":18}'
print(json_str, type(json_str))

load_data = json.loads(json_str)
print(load_data, type(load_data))

運(yùn)行結(jié)果:

{"name":"kira","age":18} <class 'str'>
{'name': 'kira', 'age': 18} <class 'dict'>

此外,如果需要從 JSON 文件中加載數(shù)據(jù),可以使用 json.load() 方法。

import json

with open('kira.json', 'r', encoding='utf-8') as f:
    load_data = json.load(f)
    print(load_data, type(load_data))

運(yùn)行結(jié)果:

{'name': 'kira', 'age': 18, 'hobby': ['唱歌', '吹牛'], 'friends': [{'name': '劉德華'}, {'name': '梁朝偉'}]} <class 'dict'>

2.2 Python 序列化為 JSON

與反序列化相對應(yīng),Python 可以將對象序列化為 JSON 數(shù)據(jù)。json.dumps() 方法可以實(shí)現(xiàn)這一功能。

import json

data = {
    "name": "kira",
    "age": 18,
    "hobby": ["唱歌", "吹牛"],
    "friends": [
        {"name": "劉德華"},
        {"name": "梁朝偉"}
    ]
}
json_str = json.dumps(data)
print(json_str)

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

運(yùn)行結(jié)果:

{"name": "kira", "age": 18, "hobby": ["\u5531\u6b4c", "\u5439\u725b"], "friends": [{"name": "\u5218\u5fb7\u534e"}, {"name": "\u6881\u671d\u4f1f"}]}
{"name": "kira", "age": 18, "hobby": ["唱歌", "吹牛"], "friends": [{"name": "劉德華"}, {"name": "梁朝偉"}]}
{
    "name": "kira",
    "age": 18,
    "hobby": [
        "唱歌",
        "吹牛"
    ],
    "friends": [
        {
            "name": "劉德華"
        },
        {
            "name": "梁朝偉"
        }
    ]
}
{
    "age": 18,
    "friends": [
        {
            "name": "劉德華"
        },
        {
            "name": "梁朝偉"
        }
    ],
    "hobby": [
        "唱歌",
        "吹牛"
    ],
    "name": "kira"
}

如果需要將 Python 對象序列化后寫入 JSON 文件,可以使用 json.dump() 方法。

import json

data = {
    "name": "kira",
    "age": 18,
    "hobby": ["唱歌", "吹牛"],
    "friends": [
        {"name": "劉德華"},
        {"name": "梁朝偉"}
    ]
}

with open('first.json', 'w', encoding='utf-8') as f:
    json.dump(data, f, ensure_ascii=False, indent=4)

通過上述方法,我們可以輕松地在 Python 中進(jìn)行 JSON 數(shù)據(jù)的序列化和反序列化操作。無論是數(shù)據(jù)交換還是數(shù)據(jù)存儲,JSON 都是一種簡單而高效的選擇。在實(shí)際工作中,我們可以根據(jù)具體需求靈活運(yùn)用 JSON 的優(yōu)勢,提高工作效率。

3 工作中的常見場景

3.1 網(wǎng)絡(luò)請求和響應(yīng)

在web開發(fā)中,客戶端和服務(wù)器之間得數(shù)據(jù)傳輸通常使用JSON格式。客戶端可以將數(shù)據(jù)封裝成 JSON 字符串,通過網(wǎng)絡(luò)請求發(fā)送給服務(wù)器。服務(wù)器接收到 JSON 數(shù)據(jù)后,可以使用 Python 中的 JSON 模塊將其反序列化為 Python 對象進(jìn)行處理。處理完成后,服務(wù)器可以將結(jié)果序列化為 JSON 數(shù)據(jù),發(fā)送給客戶端作為響應(yīng)。例如:

服務(wù)器端(Python):
from flask import Flask, jsonify, request

app = Flask(__name__)

@app.route('/api/data', methods=['POST'])
def receive_data():
    data = request.get_json()
    # 對接收到的數(shù)據(jù)進(jìn)行處理
    processed_data = process_data(data)
    # 將處理后的數(shù)據(jù)作為 JSON 響應(yīng)返回給客戶端
    return jsonify(processed_data)

def process_data(data):
    # 在這里進(jìn)行數(shù)據(jù)處理的邏輯
    # ...
    return processed_data

if __name__ == '__main__':
    app.run()
客戶端(JavaScript):
const data = {
  name: '測試玩家勇哥',
  age: 18,
  hobby: ['唱歌', '吹牛'],
};

fetch('/api/data', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(data),
})
  .then(response => response.json())
  .then(responseData => {
    // 處理從服務(wù)器返回的響應(yīng)數(shù)據(jù)
    console.log(responseData);
  });

上述就是客戶端語服務(wù)器端之間使用JSON數(shù)據(jù)傳輸交互的常見場景。

3.2 配置文件管理

JSON 格式數(shù)據(jù)非常適合用于存儲和管理配置文件,當(dāng)然數(shù)據(jù)文件的使用之前勇哥有一篇文章詳細(xì)介紹過,忘記了的小伙伴可以去復(fù)習(xí)一下,傳送門:,下面舉個(gè)荔枝:

讀取配置文件:
import json

def read_config_file(file_path):
    with open(file_path, 'r') as f:
        config_data = json.load(f)
    return config_data

# 讀取配置文件
config = read_config_file('config.json')

# 獲取配置項(xiàng)的值
db_host = config['database']['host']
db_port = config['database']['port']
修改配置文件:
import json

def update_config_file(file_path, new_config):
    with open(file_path, 'w') as f:
        json.dump(new_config, f, indent=4)

# 讀取配置文件
config = read_config_file('config.json')

# 修改配置項(xiàng)的值
config['database']['port'] = 5432

# 更新配置文件
update_config_file('config.json', config)

數(shù)據(jù)持久化存儲也是可以寫道JSON文件中的,本文就不做過多的描寫了。

總結(jié)

以上就是勇哥今天為各位小伙伴準(zhǔn)備的內(nèi)容,如果你想了解更多關(guān)于Python自動化測試的知識和技巧,歡迎關(guān)注:

我的公眾號:測試玩家勇哥

博客(奈非天的主頁 - 博客園 (cnblogs.com))

我會不定期地分享更多的精彩內(nèi)容。感謝你的閱讀和支持!文章來源地址http://www.zghlxwxcb.cn/news/detail-499680.html

本文來自博客園,作者:奈非天,轉(zhuǎn)載請注明原文鏈接:https://www.cnblogs.com/Nephalem-262667641/p/17460169.html

在現(xiàn)代的數(shù)據(jù)交換和存儲中,JSON(JavaScript Object Notation)作為一種輕量級的數(shù)據(jù)交換格式,備受青睞。它不僅易于閱讀和理解,還可以靈活地表達(dá)和存儲高維數(shù)據(jù)。本文將介紹如何在 Python 中操作 JSON 文件,實(shí)現(xiàn)數(shù)據(jù)的序列化和反序列化。

1. JSON 數(shù)據(jù)格式

JSON 格式采用鍵值對的方式表達(dá)信息。它的值可以是對象、數(shù)組、字符串、整數(shù)、浮點(diǎn)數(shù)、布爾型或空值。下面是一個(gè) JSON 數(shù)據(jù)的例子:

{
    "name": "kira",
    "age": 18,
    "hobby": ["唱歌", "吹牛"],
    "friends": [
        {"name": "劉德華"},
        {"name": "梁朝偉"}
    ]
}

在實(shí)際工作中,我們可以根據(jù)需要擴(kuò)展和定制這種數(shù)據(jù)格式,以適應(yīng)不同的場景和業(yè)務(wù)需求。

2. Python 操作 JSON 文件

Python 提供了內(nèi)置的 json 模塊,用于解析和操作 JSON 數(shù)據(jù)。

2.1 JSON 反序列化為 Python 對象

將 JSON 數(shù)據(jù)反序列化為 Python 對象是常見的操作,可以利用 json.loads() 方法實(shí)現(xiàn)。

import json

json_str = '{"name":"kira","age":18}'
print(json_str, type(json_str))

load_data = json.loads(json_str)
print(load_data, type(load_data))

運(yùn)行結(jié)果:

{"name":"kira","age":18} <class 'str'>
{'name': 'kira', 'age': 18} <class 'dict'>

此外,如果需要從 JSON 文件中加載數(shù)據(jù),可以使用 json.load() 方法。

import json

with open('kira.json', 'r', encoding='utf-8') as f:
    load_data = json.load(f)
    print(load_data, type(load_data))

運(yùn)行結(jié)果:

{'name': 'kira', 'age': 18, 'hobby': ['唱歌', '吹牛'], 'friends': [{'name': '劉德華'}, {'name': '梁朝偉'}]} <class 'dict'>

2.2 Python 序列化為 JSON

與反序列化相對應(yīng),Python 可以將對象序列化為 JSON 數(shù)據(jù)。json.dumps() 方法可以實(shí)現(xiàn)這一功能。

import json

data = {
    "name": "kira",
    "age": 18,
    "hobby": ["唱歌", "吹牛"],
    "friends": [
        {"name": "劉德華"},
        {"name": "梁朝偉"}
    ]
}
json_str = json.dumps(data)
print(json_str)

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

運(yùn)行結(jié)果:

{"name": "kira", "age": 18, "hobby": ["\u5531\u6b4c", "\u5439\u725b"], "friends": [{"name": "\u5218\u5fb7\u534e"}, {"name": "\u6881\u671d\u4f1f"}]}
{"name": "kira", "age": 18, "hobby": ["唱歌", "吹牛"], "friends": [{"name": "劉德華"}, {"name": "梁朝偉"}]}
{
    "name": "kira",
    "age": 18,
    "hobby": [
        "唱歌",
        "吹牛"
    ],
    "friends": [
        {
            "name": "劉德華"
        },
        {
            "name": "梁朝偉"
        }
    ]
}
{
    "age": 18,
    "friends": [
        {
            "name": "劉德華"
        },
        {
            "name": "梁朝偉"
        }
    ],
    "hobby": [
        "唱歌",
        "吹牛"
    ],
    "name": "kira"
}

如果需要將 Python 對象序列化后寫入 JSON 文件,可以使用 json.dump() 方法。

import json

data = {
    "name": "kira",
    "age": 18,
    "hobby": ["唱歌", "吹牛"],
    "friends": [
        {"name": "劉德華"},
        {"name": "梁朝偉"}
    ]
}

with open('first.json', 'w', encoding='utf-8') as f:
    json.dump(data, f, ensure_ascii=False, indent=4)

通過上述方法,我們可以輕松地在 Python 中進(jìn)行 JSON 數(shù)據(jù)的序列化和反序列化操作。無論是數(shù)據(jù)交換還是數(shù)據(jù)存儲,JSON 都是一種簡單而高效的選擇。在實(shí)際工作中,我們可以根據(jù)具體需求靈活運(yùn)用 JSON 的優(yōu)勢,提高工作效率。

3 工作中的常見場景

3.1 網(wǎng)絡(luò)請求和響應(yīng)

在web開發(fā)中,客戶端和服務(wù)器之間得數(shù)據(jù)傳輸通常使用JSON格式。客戶端可以將數(shù)據(jù)封裝成 JSON 字符串,通過網(wǎng)絡(luò)請求發(fā)送給服務(wù)器。服務(wù)器接收到 JSON 數(shù)據(jù)后,可以使用 Python 中的 JSON 模塊將其反序列化為 Python 對象進(jìn)行處理。處理完成后,服務(wù)器可以將結(jié)果序列化為 JSON 數(shù)據(jù),發(fā)送給客戶端作為響應(yīng)。例如:

服務(wù)器端(Python):
from flask import Flask, jsonify, request

app = Flask(__name__)

@app.route('/api/data', methods=['POST'])
def receive_data():
    data = request.get_json()
    # 對接收到的數(shù)據(jù)進(jìn)行處理
    processed_data = process_data(data)
    # 將處理后的數(shù)據(jù)作為 JSON 響應(yīng)返回給客戶端
    return jsonify(processed_data)

def process_data(data):
    # 在這里進(jìn)行數(shù)據(jù)處理的邏輯
    # ...
    return processed_data

if __name__ == '__main__':
    app.run()
客戶端(JavaScript):
const data = {
  name: '測試玩家勇哥',
  age: 18,
  hobby: ['唱歌', '吹牛'],
};

fetch('/api/data', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(data),
})
  .then(response => response.json())
  .then(responseData => {
    // 處理從服務(wù)器返回的響應(yīng)數(shù)據(jù)
    console.log(responseData);
  });

上述就是客戶端語服務(wù)器端之間使用JSON數(shù)據(jù)傳輸交互的常見場景。

3.2 配置文件管理

JSON 格式數(shù)據(jù)非常適合用于存儲和管理配置文件,當(dāng)然數(shù)據(jù)文件的使用之前勇哥有一篇文章詳細(xì)介紹過,忘記了的小伙伴可以去復(fù)習(xí)一下,傳送門:,下面舉個(gè)荔枝:

讀取配置文件:
import json

def read_config_file(file_path):
    with open(file_path, 'r') as f:
        config_data = json.load(f)
    return config_data

# 讀取配置文件
config = read_config_file('config.json')

# 獲取配置項(xiàng)的值
db_host = config['database']['host']
db_port = config['database']['port']
修改配置文件:
import json

def update_config_file(file_path, new_config):
    with open(file_path, 'w') as f:
        json.dump(new_config, f, indent=4)

# 讀取配置文件
config = read_config_file('config.json')

# 修改配置項(xiàng)的值
config['database']['port'] = 5432

# 更新配置文件
update_config_file('config.json', config)

數(shù)據(jù)持久化存儲也是可以寫道JSON文件中的,本文就不做過多的描寫了。

總結(jié)

以上就是勇哥今天為各位小伙伴準(zhǔn)備的內(nèi)容,如果你想了解更多關(guān)于Python自動化測試的知識和技巧,歡迎關(guān)注:

我的公眾號:測試玩家勇哥

博客(奈非天的主頁 - 博客園 (cnblogs.com))

我會不定期地分享更多的精彩內(nèi)容。感謝你的閱讀和支持!

到了這里,關(guān)于Python 中的 JSON 操作:簡單、高效的數(shù)據(jù)交換格式的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Python提取JSON格式數(shù)據(jù)

    Python提取JSON格式數(shù)據(jù)

    我們經(jīng)常會用到j(luò)son數(shù)據(jù),json數(shù)據(jù)格式主要是用來和不同語言之間進(jìn)行交互 比如你要給java端的提供數(shù)據(jù),你需要將自己的數(shù)據(jù)轉(zhuǎn)換為json格式才行 所以不管是提供給后端其他人,還是從API返回的數(shù)據(jù)結(jié)果,我們都需要封裝成json數(shù)據(jù)格式或者解析json數(shù)據(jù) json的數(shù)據(jù)格式類似于

    2023年04月24日
    瀏覽(17)
  • Python的pandas庫來實(shí)現(xiàn)將Excel文件轉(zhuǎn)換為JSON格式的操作

    Python的pandas庫來實(shí)現(xiàn)將Excel文件轉(zhuǎn)換為JSON格式的操作

    ?作者簡介:2022年 博客新星 第八 。熱愛國學(xué)的Java后端開發(fā)者,修心和技術(shù)同步精進(jìn)。 ??個(gè)人主頁:Java Fans的博客 ??個(gè)人信條:不遷怒,不貳過。小知識,大智慧。 ??當(dāng)前專欄:Python案例分享專欄 ?特色專欄:國學(xué)周更-心性養(yǎng)成之路 ??本文內(nèi)容:Python的pandas庫來實(shí)現(xiàn)

    2024年02月09日
    瀏覽(25)
  • Python(21)json.dumps()使用indent參數(shù) 格式化輸出json數(shù)據(jù)格式

    json.dumps() 方法 將一個(gè)Python數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為JSON字符串 輸出為 這樣的格式一般都不優(yōu)美,當(dāng)數(shù)據(jù)很多的時(shí)候,看得就不是很直觀方便。 可以使用 indent=4 參數(shù)來對json進(jìn)行數(shù)據(jù)格式化輸出,會根據(jù)數(shù)據(jù)格式縮進(jìn)顯示,讀起來更加清晰 用法如下 輸出為 json.dumps()方法,參數(shù)解釋

    2024年02月08日
    瀏覽(26)
  • 【Python】-- python與json數(shù)據(jù)格式的轉(zhuǎn)換

    什么是json? json是一種輕量級的數(shù)據(jù)交互格式,可以按照json指定的格式去組織和封裝數(shù)據(jù)。 json主要功能 json是一種在各個(gè)編程語言中流通的數(shù)據(jù)格式,負(fù)責(zé)不同編程語言中的數(shù)據(jù)傳遞與交互。 json的作用 為了讓不同的語言都能相互通用的傳遞數(shù)據(jù),json是一種很好的中轉(zhuǎn)數(shù)據(jù)

    2024年02月11日
    瀏覽(22)
  • Python小白入門:文件、異常處理和json格式存儲數(shù)據(jù)

    Python小白入門:文件、異常處理和json格式存儲數(shù)據(jù)

    所用資料 代碼中所用到的文件可以從下面的網(wǎng)站進(jìn)行下載: https://www.ituring.com.cn/book/2784 open函數(shù) 打開 一個(gè)文件。 接收參數(shù)為需要打開的文件名 。Python會在 當(dāng)前執(zhí)行的文件所在目錄下 查找指定文件,因此需要把pi_digits.txt文件放在執(zhí)行文件的同目錄下。 open函數(shù)返回一個(gè)表示

    2024年02月13日
    瀏覽(20)
  • Vue使用axios用post方式將表單中的數(shù)據(jù)以json格式提交給后端接收

    1.后端controller層代碼代碼 我采用的接收形式數(shù)據(jù)是json格式 2.前端登錄注冊界面代碼 3.遇到的問題: 3.1. 我們首先在Vue data中定義一個(gè)存放表單數(shù)據(jù)的registform{},然后給它添加上屬性,在表單input處使用v-model綁定。 3.2. 接下來將registform保存到datata變量中,然后就是axios的發(fā)送請

    2023年04月27日
    瀏覽(28)
  • Python自動化測試用例:如何優(yōu)雅的完成Json格式數(shù)據(jù)斷言

    Python自動化測試用例:如何優(yōu)雅的完成Json格式數(shù)據(jù)斷言

    目錄 前言 直接使用 優(yōu)化 封裝 小結(jié) 進(jìn)階 總結(jié) ?資料獲取方法 記錄Json斷言在工作中的應(yīng)用進(jìn)階。 很早以前寫過一篇博客,記錄當(dāng)時(shí)獲取一個(gè)多級json中指定key的數(shù)據(jù): 后來在寫用例生成過程中,發(fā)現(xiàn)重復(fù)的斷言描述信息較多,大多數(shù)數(shù)據(jù)返回其實(shí)都是標(biāo)準(zhǔn)的json,所以將整個(gè)

    2024年02月13日
    瀏覽(16)
  • python熟悉python基礎(chǔ)語法,了解html網(wǎng)絡(luò)結(jié)構(gòu),了解json格式數(shù)據(jù),含有字符串

    python熟悉python基礎(chǔ)語法,了解html網(wǎng)絡(luò)結(jié)構(gòu),了解json格式數(shù)據(jù),含有字符串

    Python網(wǎng)絡(luò)爬蟲是利用Python編寫的程序,通過自動化地訪問網(wǎng)頁、解析html或json數(shù)據(jù),并提取所需信息的技術(shù)。下面將詳細(xì)介紹一些與Python網(wǎng)絡(luò)爬蟲相關(guān)的重要知識點(diǎn)。 ? 變量和數(shù)據(jù)類型:學(xué)習(xí)如何聲明變量以及Python中的常用數(shù)據(jù)類型,如數(shù)字、字符串、列表、字典等。 條件語

    2024年02月10日
    瀏覽(26)
  • 使用Pydantic將Python對象轉(zhuǎn)換為其他數(shù)據(jù)格式,例如JSON、XML、YAML

    更多文章:技數(shù)未來 Pydantic是一個(gè)在Python中的數(shù)據(jù)驗(yàn)證和解析庫。它可以將Python對象轉(zhuǎn)換成其他數(shù)據(jù)格式,如JSON、XML和YAML。在使用Pydantic之前,我們需要進(jìn)行一些準(zhǔn)備工作: 1. 安裝Python和pip:確保你的計(jì)算機(jī)上安裝了Python以及pip包管理器。 2. 創(chuàng)建虛擬環(huán)境(可選):建議使

    2024年02月15日
    瀏覽(98)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包