日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Python--JSON基础

發布時間:2025/3/15 javascript 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python--JSON基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

1.基本介紹

1.1相關知識

1.2解析 JSON 數據

1.3從文件解析JSON數據

1.4生成 JSON 數據

2.案例分析?

2.1案例介紹

?2.2原理分析

2.3代碼展示?


1.基本介紹

1.1相關知識

JSON庫是 Python 內置的一個用于操作 JSON 數據的庫,提供了幾個函數用于解析生成(或者說反序列化序列化)JSON 格式的數據。

1.2解析 JSON 數據

JSON庫提供了一個函數loads,用于從 Python 的字符串中解析 JSON 數據。使用它的方法很簡單,只需將含有 JSON 數據的字符串當做參數傳遞給它,它的返回值就是由 Python 中的基礎數據類型組成的對象。

import json data = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; text = json.loads(data) print(text)

得到的結果是:{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}?

JSON 的對象類型轉換成了 Python 的dict類型。

JSON 各種數據類型在解析后,對應的 Python 基礎數據類型如下表:

JSONPython
object(對象)dict
array(數組)list
string(字符串)unicode
number (int)int, long
number (real)float
trueTrue
falseFalse
nullNone

?JSON 數據類型轉化成 Python 數據類型后,就可以按照 Python 的方式來使用了:

import json data = '[1,2,3]'; text = json.loads(data) text.append(4) #調用list的append函數 print(text)

得到的結果是:[1, 2, 3, 4]?

1.3從文件解析JSON數據

JSON 庫的另一個函數 load 也是用于解析 JSON 數據的,它與 loads 函數唯一不同的地方在于,它是從文件中解析,比如:?

import json data = open("test.txt","r",encoding = "utf-8") text = json.load(data) #將文件對象傳遞給load函數 print(text) fp.close()

這樣 test.txt 文件內的內容,就會被當做 JSON 格式的數據來解析。

注意:load 函數沒有可選參數 encoding ,只要文件對象使用了正確的字符編碼打開文件,load 函數就可以正確的解析數據。?

1.4生成 JSON 數據

與解析的那兩個函數相對應,json 庫也提供了兩個函數:dumps 和 dump ,來將由 Python 基礎數據類型組成的對象轉化成 JSON 數據,使用方法也類似:

import jsondata = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]json = json.dumps(data) #轉化成JSON格式的字符串 print(json)

得到的結果是:[{"a": 1, "b": 2, "c": 3, "d": 4, "e": 5}]

?注意:這是一個字符串

dumps 沒有可選參數 encoding ,當要轉化的對象含有中文等非 ASCII 字符時,建議指定可選參數 ensure_ascii 為 False 。否則非 ASCII 的字符將會被顯示成 \uXXXX 的形式。

2.案例分析?

2.1案例介紹

有一個字符編碼為 utf-8 的數據文件 step2/2017.txt :?

{"count":3 , "infos": [ {"name":"趙昊" , "age":15 ,"height": 1.83, "sex" : "男性" }, {"name":"龍傲天" , "age":16 ,"height": 2.00, "sex" : "男性"}, {"name":"瑪麗蘇" , "age":15 ,"height": 1.78, "sex" : "女性"} ] }

將其按 JSON 格式解析后,將 infos 數組內的三個對象的年齡 age 增加一歲,然后增加一條記錄:

  • 名稱:葉良辰,年齡:17,身高:1.87,男性

同時,將 count 的值從3改為4。

注意:所有打開的文件,請在打開文件的函數內及時關閉,以免影響測試代碼讀取數據。

以 JSON 格式解析 step2/2018.txt 的內容,并將其中的數據打印出來。 如果內容成功解析,并且數據填寫正確,將會有如下結果輸出:?

學生數:4

名稱:趙昊,年齡:16,身高:1.83,男性

名稱:龍傲天,年齡:17,身高:2.00,男性

名稱:瑪麗蘇,年齡:16,身高:1.78,女性

名稱:葉良辰,年齡:17,身高:1.87,男性

?2.2原理分析

該題首先讓我們將JSON數據轉化為Python數據進行操作,利用load函數操作之后他會轉換成一個大的字典(dict),字典名為obj,字典內還有一個鍵值對{“count”:3},和一個名為infos的大的列表,該列表內含有三個小字典,修改鍵值對直接賦值即可,修改列表內嵌套的字典,直接用下表+key即可,增加列表元素用append()函數,記得增加字典。

2.3代碼展示?

import jsondef Func():data = open("step2/2017.txt","r",encoding = "utf-8")obj = json.load(data)data.close()#********** Begin *********#obj["count"]=4 #修改鍵值對,把學生數從3改為4obj["infos"][0]["age"]=16obj["infos"][1]["age"]=17obj["infos"][2]["age"]=16obj["infos"].append({"name":"葉良辰","age":17,"height":1.87,"sex":"男性"})#********** End **********#output = open("step2/2018.txt","w",encoding = "utf-8")json.dump(obj,output) #輸出到文件output.close()

總結

以上是生活随笔為你收集整理的Python--JSON基础的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。