【語法】JSON格式與基礎語法

文章目錄

  • JSON 簡介
  • JSON 語法規則
    • JSON 名稱/值對
    • JSON 值類型
    • JSON文件存儲
  • JSON示例
    • 數據示例
    • Python解析JSON代碼

JSON 簡介

  • JSON 語法是 JavaScript 語法的子集。
  • JSON 是存儲和交換文本信息的語法。
  • JSON: JavaScript Object Notation(JavaScript 對象表示法)。

JSON 語法規則

  • 數據在名稱/值對中。
  • 數據由逗號分隔。
  • 花括號保存對象。
  • 方括號保存數組。

JSON 名稱/值對

JSON 數據的書寫格式是:名稱/值對。

名稱/值對包括字段名稱(在雙引號中),后面寫一個冒號,然后是值:

 "name" : "ojbk"

JSON 值類型

JSON 值可以是:

  • 數字(整數或浮點數)
  • 字符串(在雙引號中)
  • 邏輯值(true 或 false)
  • 數組(在方括號中)
  • 對象(在花括號中)
  • null

JSON文件存儲

  • 文件編碼建議UTF-8
  • 常用文件擴展名:.json或.jsonc(含注釋時)

JSON示例

數據示例

{"user": {"id": "ojbk","profile": {"name": "某某","age": 35,"interests": ["編程", "攝影"]}}
}

Python解析JSON代碼

以下是Python解析JSON的常用方法說明:

  1. 基礎解析方法
import json# 從字符串解析
json_str = '{"name": "Alice", "age": 25}'
data = json.loads(json_str)  # 返回字典類型
print(data['name'])  # 輸出: Alice# 從文件解析
with open('data.json', 'r', encoding='utf-8') as f:file_data = json.load(f)
  1. 生成JSON
# 字典轉JSON字符串
data_dict = {"city": "北京", "population": 2171}
json_str = json.dumps(data_dict, ensure_ascii=False)  # 中文不轉義
print(json_str)  # 輸出: {"city": "北京", "population": 2171}# 寫入JSON文件
with open('output.json', 'w', encoding='utf-8') as f:json.dump(data_dict, f, indent=2)  # 縮進美化
  1. 特殊參數說明
  • ensure_ascii: 控制非ASCII字符轉義(False顯示原文)
  • indent: 縮進空格數(美化輸出)
  • sort_keys: 按鍵名排序(默認False)
  1. 異常處理
try:data = json.loads(invalid_json_str)
except json.JSONDecodeError as e:print(f"JSON解析錯誤: {e.msg} (行{e.lineno}{e.colno})")
  1. 數據類型對應關系
JSON類型Python類型
objectdict
arraylist
stringstr
numberint/float
true/falsebool
nullNone

需要解析特定格式的JSON文件或處理復雜嵌套結構時,可以進一步說明需求。

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

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

相關文章

GitHub 熱榜項目 - 日榜(2025-08-16)

GitHub 熱榜項目 - 日榜(2025-08-16) 生成于:2025-08-16 統計摘要 共發現熱門項目:13 個 榜單類型:日榜 本期熱點趨勢總結 本期GitHub熱榜呈現三大技術熱點:1) AI應用深入垂直領域,SpatialLM將大語言模型應用于空間…

什么是EDA(Exploratory Data Analysis,探索性數據分析)

EDA(Exploratory Data Analysis,探索性數據分析)是一種在正式建模前,通過統計量和可視化方法來理解數據特征、發現模式與異常、并提出假設的過程。 這張圖里你會看到: 直方圖:展示單變量的分布,…

計算機畢業設計java的小天鵝酒店月子會所管理小天鵝酒店母嬰護理中心管理系統設計小天鵝酒店產后護理會所信息化管理平臺

計算機畢業設計java的小天鵝酒店月子會所管理9zl079(配套有源碼 程序 mysql數據庫 論文) 本套源碼可以在文本聯xi,先看具體系統功能演示視頻領取,可分享源碼參考。在當今數字化時代,隨著人們對產后護理需求的不斷增加,…

Docker-14.項目部署-DockerCompose

一.DockerCompose大家可以看到,我們部署一個簡單的java項目,其中包含3個容器:MySQLNginxJava項目而稍微復雜的項目,其中還會有各種各樣的其它中間件,需要部署的東西遠不止3個。如果還像之前那樣手動的逐一部署&#xf…

Vue組件基礎解析

一、組件的核心意義 組件是Vue中實現UI復用與邏輯封裝的基礎單元,能將復雜UI拆分為獨立、可重用的部分,最終組織成嵌套的樹狀結構(類似HTML元素嵌套)。Vue組件模型支持自定義內容與邏輯封裝,也能兼容原生Web Component。 二、組件的定義方式 根據是否使用構建步驟,Vue…

第5問 對于數據分析領域,統計學要學到什么程度?

1. ?統計學在數據分析中的定位??核心作用?:統計學是數據分析的底層方法論,涵蓋數據描述、推斷預測和模型構建。?兩大分支?:?描述統計?(EDA階段):數據清洗、特征工程的基礎(如均值/分布/…

[go] 橋接模式

橋接模式 是一種結構型設計模式, 可將一個大類或一系列緊密相關的類拆分為抽象和實現兩個獨立的層次結構, 從而能在開發時分別使用。 模型說明抽象部分(Abstraction)提供高層控制邏輯,依賴于完成底層實際工作的實現對象…

GitHub的使用教程

第一章:準備工作 1.1:安裝Git并設置你的GitHub賬戶 1.1.1:注冊 GitHub 賬號: 訪問 https://github.com/ 并注冊一個新賬號。 可以使用qq郵箱進行注冊 輸入郵箱后點擊sign up for GitHub,設置密碼后進行注冊,輸入驗…

Day56 Java面向對象10 方法重寫

Day56 Java面向對象10 方法重寫 1.為什么要方法重寫 當子類不需要父類方法的全部內容 或 父類的方法無法滿足子類的需求時,就需要在子類重寫父類的方法 2.如何方法重寫 重寫必須發生在繼承關系中,只能是子類重寫父類子類重寫的方法名必須和父類方法一致,方法體可以不同子類重寫…

【C++】標準庫中用于組合多個值的數據結構pair、tuple、array...

在 C 標準庫中,有多種數據結構可用于組合多個值,每種結構都有其特定的設計目的和適用場景。以下是主要組合數據結構的分類解析: 一、核心組合數據結構 1. std::pair (C98) 用途:存儲兩個相關值(鍵值對、坐標點等&#…

深入解析C++ STL鏈表(List)模擬實現

目錄 一、需要實現的三個類及其成員函數接口 二、結點類的模擬實現 構造函數 三、迭代器類的模擬實現 1、迭代器類的作用 2、迭代器類模板參數說明 3、構造函數 4、前置運算符重載 5、后置運算符重載 6、前置 -- 運算符重載 7、后置 -- 運算符重載 8、運算符重載 …

將mysql數據庫表結構導出成DBML格式

前言 DBML(數據庫標記語言)是一種簡單易讀的 DSL 語言,用于定義數據庫結構。 因為需要分析商品模塊的表設計是否合理,所以需要圖形化表,并顯示表之前的關系。 想來想去,找到了DBML。所以就需要將數據庫結構…

玩轉tokenizer

🌟 案例 1:加載現成的 BERT 分詞器from tokenizers import Tokenizer# 加載一個預訓練的 BERT tokenizer(文件需要提前下載,比如bert-base-uncased) tokenizer Tokenizer.from_file("bert-base-uncased-tokenize…

Day53--圖論--106. 島嶼的周長(卡碼網),110. 字符串接龍(卡碼網),105. 有向圖的完全聯通(卡碼網)

Day53–圖論–106. 島嶼的周長(卡碼網),110. 字符串接龍(卡碼網),105. 有向圖的完全聯通(卡碼網) 106. 島嶼的周長(卡碼網) 方法:深搜 思路&am…

Elasticsearch 數據建模與映射(Mapping)詳解

在 Elasticsearch 中,數據建模與映射(Mapping) 是決定搜索性能、存儲效率和功能支持的核心環節。合理的映射設計能讓搜索更精準、聚合更高效、存儲更節省。 本文將全面詳解 Elasticsearch 的 數據建模原則、字段類型、動態映射、自定義分析器…

5G工業一體機汽車零部件工廠的無紙化管理

在全球數字化轉型的浪潮中,制造業對信息化、智能化的需求日益強烈。尤其是在汽車零部件領域,生產線的復雜性、質量追溯的苛刻性以及對效率的高要求,迫切需要一種高效、可靠、可擴展的管理模式。以“5G工業一體機”為核心的無紙化管理&#xf…

項目管理工具

1、概述IT 項目生命周期通常可分為啟動、規劃、執行、監控與控制、收尾五個核心階段,每個階段的目標和任務不同,所依賴的工具也各有側重。以下按階段梳理常用工具,涵蓋項目管理、協作、技術開發等多個維度。2、啟動階段:明確項目目…

Linux 進程、線程與 exec/系統調用詳解

1. wait 與 waitpid —— 子進程資源回收1.1 waitpid_t wait(int *wstatus);功能:阻塞等待,回收任意子進程的資源空間。參數:wstatus:保存子進程退出狀態的變量地址NULL:不保存退出狀態返回值:成功&#xf…

Laravel 使用ssh鏈接遠程數據庫

1.創建ssh ssh -i ./id_rsa -N -L 13306:127.0.0.1:3306 -p 22 root***對上述代碼的解釋: 命令是一個SSH隧道命令,用于將本地端口3306轉發到遠程服務器上的3306端口。以下是命令的詳細解釋:# 調用SSH客戶端。 ssh # 指定用于身份驗證的私鑰文…

Python延申內容(一)

1.技術面試題 (1)TCP與UDP的區別是什么? 答: TCP(傳輸控制協議):面向連接、可靠傳輸(數據完整有序)、流量控制、擁塞控制,適用于文件傳輸、網頁瀏覽等場景。 …