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

歡迎訪問 生活随笔!

生活随笔

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

javascript

【Python进阶】_JSON

發布時間:2025/4/5 javascript 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python进阶】_JSON 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JSON是什么

JSON (JavaScript Object Notation, JS 對象標記) 是一種輕量級的數據交換格式。

它是 javascript 規范里面定義的。 它是一種文本格式來存儲和表示數據。

它的特點就是 簡潔 并且 清晰, 人都能很容易的看明白。

JSON作用

把程序的各種類型數據對象變成表示該數據對象的字節串 這個過程 稱之為?序列化?。

而把 字節串轉化為 程序中的數據對象 這個過程 稱之為?反序列化

就好像 兩個人聊天時,雙方需要把自己腦子中的事物轉化為語言描述傳遞給對方, 接收到對方的語言描述,再轉化為自己的腦子中的事物一樣。JSON在這個過程中就相當于雙方都可以理解的語言,有著公用的標準與規范。

Python中轉換成JSON格式

Python中內置了json這個庫,可以 方便的把內置的數據對象 序列化為json格式文本的字符串。

把上面的數據對象序列化為json格式的字符串,就可以使用該庫里面的dumps函數,如下

import json historyTransactions = [{'time' : '20170101070311', # 交易時間'amount' : '3088', # 交易金額'productid' : '45454455555', # 貨號'productname' : 'iphone7' # 貨名},{'time' : '20170101050311', # 交易時間'amount' : '18', # 交易金額'productid' : '453455772955', # 貨號'productname' : '奧妙洗衣液' # 貨名}]jsonstr=json.dumps(historyTransactions,ensure_ascii=False,indent=4) print(jsonstr)

輸出結果:

[{"time": "20170101070311","amount": "3088","productid": "45454455555","productname": "iphone7"},{"time": "20170101050311","amount": "18","productid": "453455772955","productname": "奧妙洗衣液"} ]

語句解釋:JSON默認把非ASCII碼的字符轉換為unicode表示,ensure_ascii=False表示轉換中文時不按Unicode表示,輸出原來中文;indent=4表示轉換后縮進為4,這樣顯得整潔好看

Python中接收JSON模式

接收方如果也是Python開發的,可以使用 json庫中的 loads方法,把json格式的字符串變為 Python中的數據對象,如下

import json jsonstr = '[{"time": "20170101070311", "amount": "3088", "productid": "45454455555", "productname": "iphone7"}, {"time": "20170101050311", "amount": "18", "productid": "453455772955", "productname": "\u5965\u5999\u6d17\u8863\u6db2"}]'translist = json.loads(jsonstr) print(translist) print(type(translist))

輸出結果:

[{'time': '20170101070311', 'amount': '3088', 'productid': '45454455555', 'productname': 'iphone7'}, {'time': '20170101050311', 'amount': '18', 'productid': '453455772955', 'productname': '奧妙洗衣液'}] <class 'list'>

可以發現,確實轉變成為了list對象。

這樣接收方程序就可以方便的處理里面的數據了。

對象深拷貝

先看下面一段代碼:

eam1 = [{'name':'喬丹','height':'198'},{'name':'姚明','height':'223'} ]team2 = team1 team2[0]['name'] = '麥迪' print(team1[0]['name'])

輸出結果:麥迪

在上面一段代碼中我們想把從team1中拷貝過來的team2做一些改動而不影響原有的team1數據,按照上面的方式,在改完后我們發現team1中的數據也相應發生了變化。這是因為當我們把team1賦值給team2時,不是重新開辟一個存儲空間存放team1的內容,而是相當于在team2中存放了team1內容的地址,所以改動team2中的內容,其實在改變了這個地址中的內容,team1自然也就相應發生了變化。

為了解決我們的問題,我們可用JSON來完成對象深拷貝,代碼如下:

team1 = [{'name':'喬丹','height':'198'},{'name':'姚明','height':'223'} ]import json team2 = json.loads(json.dumps(team1))team2[0]['name'] = '麥迪' print(team1[0]['name'])

輸出結果:喬丹

解釋:我們先把team1數據內容轉換成JSON格式,再把它轉換成python內部數據格式保存在team2中,會重新開辟一個新的地址存放數據。

總結

以上是生活随笔為你收集整理的【Python进阶】_JSON的全部內容,希望文章能夠幫你解決所遇到的問題。

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