日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Python中json用法

Python中的json模塊用于處理JSON數(shù)據(jù),可實(shí)現(xiàn)數(shù)據(jù)的序列化和反序列化。

專注于為中小企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)興縣免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上1000家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

Python中的JSON用法

JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式,易于閱讀和編寫,同時(shí)也易于機(jī)器解析和生成,在Python中,我們可以使用json模塊來處理JSON數(shù)據(jù),本文將詳細(xì)介紹Python中JSON的常用操作,包括讀取、寫入、序列化和反序列化等。

讀取JSON文件

要讀取JSON文件,我們需要使用json模塊的load()函數(shù),這個(gè)函數(shù)接受一個(gè)文件對(duì)象作為參數(shù),返回一個(gè)表示JSON數(shù)據(jù)的Python對(duì)象。

示例代碼:

import json
with open('data.json', 'r', encoding='utf-8') as f:
    data = json.load(f)
print(data)

寫入JSON文件

要將Python對(duì)象寫入JSON文件,我們需要使用json模塊的dump()函數(shù),這個(gè)函數(shù)接受兩個(gè)參數(shù),第一個(gè)是要寫入的Python對(duì)象,第二個(gè)是文件對(duì)象。

示例代碼:

import json
data = {
    'name': '張三',
    'age': 30,
    'city': '北京'
}
with open('data.json', 'w', encoding='utf-8') as f:
    json.dump(data, f)

序列化和反序列化

除了讀寫文件,我們還可以使用json模塊對(duì)Python對(duì)象進(jìn)行序列化和反序列化操作。

1、序列化:將Python對(duì)象轉(zhuǎn)換為JSON字符串,使用dumps()函數(shù)。

示例代碼:

import json
data = {
    'name': '張三',
    'age': 30,
    'city': '北京'
}
json_str = json.dumps(data)
print(json_str)

2、反序列化:將JSON字符串轉(zhuǎn)換為Python對(duì)象,使用loads()函數(shù)。

示例代碼:

import json
json_str = '{"name": "張三", "age": 30, "city": "北京"}'
data = json.loads(json_str)
print(data)

自定義序列化和反序列化

我們需要對(duì)某些特殊的Python對(duì)象進(jìn)行自定義序列化和反序列化操作,這時(shí),我們可以使用json模塊提供的default()object_hook()參數(shù)。

1、default()參數(shù):用于指定一個(gè)函數(shù),當(dāng)遇到無法序列化的對(duì)象時(shí),會(huì)調(diào)用這個(gè)函數(shù)進(jìn)行處理。

示例代碼:

import json
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
def default(obj):
    if isinstance(obj, Person):
        return {'name': obj.name, 'age': obj.age}
    raise TypeError(f"Object of type {type(obj).__name__} is not JSON serializable")
person = Person('張三', 30)
json_str = json.dumps(person, default=default)
print(json_str)

2、object_hook()參數(shù):用于指定一個(gè)函數(shù),當(dāng)遇到一個(gè)字典對(duì)象時(shí),會(huì)調(diào)用這個(gè)函數(shù)進(jìn)行處理。

示例代碼:

import json
def object_hook(dct):
    if 'name' in dct and 'age' in dct:
        return Person(dct['name'], dct['age'])
    return dct
person_dict = {'name': '張三', 'age': 30}
person = json.loads(json.dumps(person_dict), object_hook=object_hook)
print(person.name, person.age)

相關(guān)問題與解答

1、如何在Python中讀取JSON文件?

答:使用json模塊的load()函數(shù),傳入一個(gè)文件對(duì)象作為參數(shù)。

2、如何在Python中寫入JSON文件?

答:使用json模塊的dump()函數(shù),傳入一個(gè)Python對(duì)象和一個(gè)文件對(duì)象作為參數(shù)。

3、如何將Python對(duì)象轉(zhuǎn)換為JSON字符串?

答:使用json模塊的dumps()函數(shù)。

4、如何將JSON字符串轉(zhuǎn)換為Python對(duì)象?

答:使用json模塊的loads()函數(shù)。


本文標(biāo)題:Python中json用法
當(dāng)前網(wǎng)址:http://www.5511xx.com/article/cdjhpjg.html