json介紹、python數據和json數據的相互轉換

目錄

一 json介紹

json是什么?

用處

Json 和 XML 對比

各語言對Json的支持情況

Json規范詳解

二?python數據和json數據的相互轉換

dumps() : 轉換成json

loads(): 轉換成python數據

?總結


一 json介紹

json是什么?

實質上是一條字符串

是一種文本數據格式,
是一種文本規范
是一種字符串規范

用處

一般適合文本量不大,且需要記錄樹形結構的數據 或 需要靈活擴展數據

Json 和 XML 對比

Json文本
?? ?更簡潔易懂,對人更友好
?? ?適合數據量不大,結構不復雜的場景 (如:后端接口的參數)
?? ?比XML更小、更快、更易解析

XML 文本
?? ?程序處理更方便,對機器更友好
?? ?適合數據量大,結構復雜的場景(如:HTML是基于XML的)
?

各語言對Json的支持情況

1 Json實質上是一條字符串,程序中使用json,需要特定的方法轉換為對象變量才能使用
2 Json是一種文本規范,各語言對Json的支持情況:
JavaScript:原生支持 ? ?√
Python:原生支持.import json ? √
Java:原生不支持,需要引入Gson或FastJson
C++:原生不支持,引入Jsoncpp等庫

Json規范詳解

支持6種類型的值
1 字符串 ?如 "test String"?? ?
?? ?字符串中如果有雙引號,需要使用\轉義,如"test \" String"

2 數字 ?如 0.2 999 -1.1
?? ?可以是整數、浮點數(小數)
?? ?
3 布爾值 true false

4 null (空值)

5 對象 可嵌套數據,如 {"key1":"value1","key2":"value2"}
?? ?包含在一對{}之內
?? ?用,隔開多個鍵值對
?? ?*鍵值對的 鍵 必須為字符串
?? ?*鍵值對的 值 可以是6種值類型的任意一種,且無需統一類型
?? ?{"key1":"value1","key2":true,"key3":{},"key4":23}

6 數組 可嵌套數據,如 ["value1","value2","value3"]
?? ?包含在一對[]之內的
?? ?單個數組內的多個值用,隔開
?? ?數組內的值可以是Json支持的6種值的任意一種
?? ?單個數組內的多個值無需統一類型

備注:
Json文本中多余的空格、換行不會有實質的影響,僅僅是為了方便閱讀


二?python數據和json數據的相互轉換

dumps() : 轉換成json
import json
#準備列表
data=[{"姓名":"小明","年齡":"12"},{"姓名":"小紅","年齡":"13"},{"姓名":"小李","年齡":"8"}]
#轉換成json
# 有中文的時候加 ensure_ascii=False
json_str = json.dumps(data,ensure_ascii=False)
print(json_str)
print(type(json_str))
#準備字典
#轉換成json
dic1={"水果":"西瓜","蔬菜":"胡蘿卜","蛋白質":"牛肉"}
json_str2 = json.dumps(dic1,ensure_ascii=False)
print(json_str2)
print(type(json_str2))

?json實質上就是字符串str?

loads(): 轉換成python數據
import json
#準備json數據
s1='[{"姓名":"小明","年齡":"12"},{"姓名":"小紅","年齡":"13"},{"姓名":"小李","年齡":"8"}]'
#轉換成列表
l1 = json.loads(s1)
print(l1)
print(type(l1))
#準備json數據
#轉換成字典
s2='{"水果":"西瓜","蔬菜":"胡蘿卜","蛋白質":"牛肉"}'
d1 = json.loads(s2)
print(d1)
print(type(d1))

?總結

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/71217.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/71217.shtml
英文地址,請注明出處:http://en.pswp.cn/web/71217.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PAT乙級真題 / 知識點(1)

引言: 起初,報PAT是伙伴推薦。但在報名路途中,有朋友說,花時間到這上面不值得,還有學長說沒聽過,野雞杯。 我一笑而過,我可能就是偏執,我就是想報。隨著刷真題,我的基礎…

單細胞分析(20)——inferCNV分析

InferCNV分析筆記 1. 分析目標 InferCNV(Inference of Copy Number Variations)是一種基于單細胞轉錄組數據推斷**拷貝數變異(CNV)**的方法,推測其基因組變異情況。 2. 數據準備 2.1 載入數據 library(Seurat) set…

C++:多態與虛函數

1.虛函數,在函數前加virtual即可。有虛函數時,父類指針指向父類對象時就會使用父類的成員,指向子類對象時就可以使用子類成員,進而我們引入了多態的概念。 2.多態:父類指針指向子類的對象,通過父類指針調用…

WSL下使用git克隆失敗解決

WSL默認nat模式,別動了防火墻放行,見圖1git導入[bash1],ip為你wsl上linxu通過ifconfig獲取的本機ip,端口對好某alcsh軟件開啟tun模式【經過測試,不開也行】應該成了,如果不行,修改.wslconfig為下…

開放鴻蒙OpenHarmony 5.0.0 Release 兼容性測試實戰經驗分享

OpenHarmony 5.0版本的發布時間是2024年12月20日至21日。這個版本帶來了許多新特性和改進。現在5.0出了兩個release 版本,分別是5.0.0和5.0.1。 就在5.0版本發布不到2周的時間內,2025年01月01日起,不支持新產品基于老分支(OpenHar…

C++中explicit關鍵字的含義以及用法

在C中,explicit關鍵字用于修飾構造函數和轉換運算符(C11起),防止編譯器進行隱式類型轉換,要求必須顯式調用構造函數或轉換操作。以下是其核心用法和示例: 1. 修飾構造函數 用途 禁止隱式構造對象&#xf…

Oracle OCP認證考試考點詳解083系列01

題記: 本系列主要講解Oracle OCP認證考試考點(題目),適用于19C/21C,跟著學OCP考試必過。 1. 第1題: 題目 解析及答案: 關于自動工作量存儲庫(AWR)快照,以下哪三個選項…

從DNS到TCP:DNS解析流程和瀏覽器輸入域名訪問流程

1 DNS 解析流程 1.1 什么是DNS域名解析 在生活中我們會經常遇到域名,比如說CSDN的域名www.csdn.net,百度的域名www.baidu.com,我們也會碰到IP,現在目前有的是IPV4,IPV6。那這兩個有什么區別呢?IP地址是互聯網上計算機…

《2025軟件測試工程師面試》接口測試篇

基礎概念 什么是接口測試? 接口測試是測試系統組件間接口的一種測試,主要用于檢測外部系統和內部系統之間以及各個子系統之間的交互點。測試的重點是檢查數據的交換、傳遞和控制管理的過程,以及系統間的相互邏輯依賴關系等。 接口測試的優勢是什么? 接口測試具有規范性與擴…

【PHP腳本語言詳解】為什么直接訪問PHP文件會顯示空白?從錯誤示例到正確執行!

前言 作為一名開發者,你是否曾經遇到過這樣的問題:寫了一個PHP腳本,放到服務器根目錄后,直接通過file:///路徑訪問卻顯示空白頁面?而換成http://localhost卻能正常顯示?這篇文章將帶你深入理解PHP腳本語言…

word轉換為pdf后圖片失真解決辦法、高質量PDF轉換方法

1、安裝Adobe Acrobat Pro DC 自行安裝 2、配置Acrobat PDFMaker (1)點擊word選項卡上的Acrobat插件,(2)點擊“首選項”按鈕,(3)點擊“高級配置”按鈕(4)點…

基于PyTorch的深度學習2——逐元素操作,歸并,比較,矩陣

以下為部分逐元素操作代碼實例。 import torcht torch.randn(1, 3) t1 torch.randn(3, 1) t2 torch.randn(1, 3)#t0.1*(t1/t2) torch.addcdiv(t, 0.1, t1, t2)#計算sigmoid torch.sigmoid(t)#將t限制在[0,1]之間 torch.clamp(t,0,1)#t2進行就地運算 t.add_(2) 歸并操作一般…

線程池的工作流程

線程池的工作流程主要包括任務提交、線程分配、任務執行和線程回收等環節,以下是對其詳細的描述: 任務提交 當有任務需要執行時,用戶通過線程池提供的提交方法,如execute()或submit()方法,將任務(通常是實現…

C++20 標準化有符號整數:邁向更可預測的整數運算

文章目錄 一、背景:為什么需要標準化?二、2 的補碼:原理與優勢(一)2 的補碼原理(二)2 的補碼的優勢 三、C20 的變化:明確 2 的補碼四、如何利用這一特性優化代碼(一&…

Libgdx游戲開發系列教程(1)——環境配置及demo運行

目錄 環境 JDK環境 項目創建 1.下載gdx-setup.jar文件 2.填寫信息,創建項目 demo運行步驟 1.修改gradle.properties 2.安裝Build-Tool 3.運行 Libgdx游戲是基于Java的一款游戲引擎,可以發布Android,桌面端,Html,IOS等游戲,出名的《殺戮尖塔》也是用了此引擎制作的 本…

【jenkins配置記錄】

全局工具配置: D:\Program Files\Java\jdk1.8.0_281 D:\Program Files\Git\bin\git.exe E:\allure-2.13.2 2. GIT 3. 定時任務 H 8 * * 1-5 4. 構建觸發器 5. 構建后操作 Allure Report 吐血記錄:報告路徑可以為 workspace 相對路徑 6. 系統配置 em…

C++:內聯函數

內聯函數可以用來降低運行時間,當內聯函數收到編譯器的指示時,即可發生內聯:編譯器會使用函數的定義體來替代函數調用語句,此行為發生在編譯階段。 定義內聯函數涉及的關鍵字為inline,例如: inline void …

Linux網絡相關概念和重要知識(1)(網絡協議、網絡通信)

目錄 1.網絡協議 (1)網絡的起源 (2)為什么需要協議 (3)協議分層及其設計的解耦 (4)OSI定義的七層網絡模型 ①分層及其功能 ②TCP/IP協議 ③傳輸層協議(TCP和UDP&a…

【入門Web安全之前端學習的側重點和針對性的建議】

入門Web安全之前端學習的側重點和針對性的建議 一、HTML:理解攻擊載荷的載體二、CSS:次要但需警惕點擊劫持三、JavaScript:滲透測試的核心重點四、瀏覽器工具:滲透測試的實戰武器五、學習建議與資源六、總結:滲透測試者…

QILSTE H6-C210TCG高亮翠綠光LED燈珠 發光二極管LED

# H6-C210TCG:高亮翠綠光LED的復雜特性解析 在現代電子設備的復雜設計中,H6-C210TCG型號的高亮翠綠光LED以其獨特的光學和電氣特性脫穎而出。這款LED不僅具備緊湊的尺寸,還融合了復雜的參數設計,使其在眾多應用場景中表現出色。然…