国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【python模塊】python解析json文件詳解

這篇具有很好參考價值的文章主要介紹了【python模塊】python解析json文件詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、什么是json文件

JSON(Java Script Object Notation)是一種通常用于以不會“對系統(tǒng)造成負擔”的方式傳輸數(shù)據(jù)(主要通過 API)的格式。基本原理是利用文本來記錄數(shù)據(jù)點,并將數(shù)據(jù)點傳輸給第三方。

JSON是一種使用文本存儲數(shù)據(jù)對象的格式。換句話說,它是一種數(shù)據(jù)結構,將對象用文本形式表示出來。盡管它來源自JavaScript,但它已成為傳輸對象的實際標準。
大多數(shù)流行的編程語言都支持JSON格式,包括Python。JSON格式的文件經(jīng)常用于API傳輸數(shù)據(jù)對象。以下是JSON字符串的示例:

{
   "name": "United States",
   "population": 331002651,
   "capital": "Washington D.C.",
   "languages": [
  "English",
  "Spanish"
   ]
}

在這個例子中,JSON數(shù)據(jù)看起來像一個Python字典。像字典一樣,JSON以鍵值對的形式傳遞數(shù)據(jù)。然而,JSON數(shù)據(jù)也可以是字符串、數(shù)字、布爾值或列表。

在JSON流行之前,XML一直是以文本格式表示數(shù)據(jù)對象的常見選擇。以下是XML格式的相同信息的示例:

<?xml version="1.0" encoding="UTF-8"?>
<country>
   <name>United States</name>
   <population>331002651</population>
   <capital>Washington D.C.</capital>
   <languages>
       <language>English</language>
       <language>Spanish</language>
   </languages>
</country>

很明顯,JSON代碼量更少。這是JSON如此流行的主要原因之一。

JSON建構于兩種結構:
json是Javascript中的對象和數(shù)組中的對象,本質上來講就是有特定結構的字符串,所以可以通過這兩種結構可以表示各種復雜的結構:

  • 1 對象: 對象在js中表示為”{}”括起來的內(nèi)容,數(shù)據(jù)結構為{key:value, key:value…}的鍵值對結構,在面向對象的語言中,key為對象的屬性,value為對應屬性的值,所以很容易去理解。屬性值value可以為:數(shù)字、字符串、數(shù)組、對象等。
  • 2 數(shù)組:數(shù)組在js中是中括號“[]”括起來的內(nèi)容,數(shù)據(jù)結構為[“java”, “javascript”, “vb”….] 取值方式和所有語言一樣,使用索引獲取,字段值的類型是:數(shù)字、字符串、數(shù)組、對象等

簡單地說,JSON 可以將 JavaScript 對象中表示的一組數(shù)據(jù)轉換為字符串,然后就可以在函數(shù)之間輕松地傳遞這個字符串,或者在異步應用程序中將字符串從 Web 客戶機傳遞給服務器端程序。這個字符串看起來有點兒古怪,但是 JavaScript 很容易解釋它,而且 JSON 可以表示比”名稱 / 值對”更復雜的結構。例如,可以表示數(shù)組和復雜的對象,而不僅僅是鍵和值的簡單列表。

如果你還不了解 JSON,可以先閱讀 JSON 教程。

二、常用接口

Python3 中可以使用 json 模塊來對 JSON 數(shù)據(jù)進行編解碼,主要包含了下面4個操作函數(shù):
【python模塊】python解析json文件詳解
提示:所謂類文件對象指那些具有read()或者 write()方法的對象,例如,f = open(‘a(chǎn).txt’,‘r’),其中的f有read()方法,所以f就是類文件對象。

Python的JSON模塊有四個主要功能:read(),reads(),load(),和loads()。這些功能常常會讓人混淆。最重要的地方是字母“s”代表String。另外,在函數(shù)loads()和dumps()中的字母“s”需要分開讀,即loads讀load-s,dumps()讀dump-s。

這是一個快速表格,可幫助您記住這些功能:
【python模塊】python解析json文件詳解

  • 一般loads用于讀取JSON字符串,而load()用于讀取文件中的JSON數(shù)據(jù)。
    load()方法接收一個文件對象并返回解析為Python對象的JSON數(shù)據(jù)。
  • 用于編寫JSON文件的方法是dump().這種方法與dumps()方法非常相似。唯一的區(qū)別是dumps()返回一個字符串,dump()寫入一個文件。

類型轉化

在json的編解碼過程中,python 的原始類型與JSON類型會相互轉換,具體的轉化對照如下:

  • Python 編碼為 JSON 類型轉換對應表:
    【python模塊】python解析json文件詳解
  • JSON 解碼為 Python 類型轉換對應表:
    【python模塊】python解析json文件詳解

三、代碼示例

詳細內(nèi)容可閱讀 blog文章來源地址http://www.zghlxwxcb.cn/news/detail-478211.html

import json
 
data = {
    'name': 'pengjunlee',
    'age': 32,
    'vip': True,
    'address': {'province': 'GuangDong', 'city': 'ShenZhen'}
}
# 1. 將 Python字典類型 轉換為 JSON對象
json_str = json.dumps(data)
print(json_str) # 結果 {"name": "pengjunlee", "age": 32, "vip": true, "address": {"province": "GuangDong", "city": "ShenZhen"}}
 
# 2. 將 JSON對象類型 轉換為 Python字典
user_dic = json.loads(json_str)
print(user_dic['address']) # 結果 {'province': 'GuangDong', 'city': 'ShenZhen'}
print(user_dic.keys())
 
# 3. 將 Python字典 直接輸出到 文件
with open('pengjunlee.json', 'w', encoding='utf-8') as f:
    json.dump(user_dic, f, ensure_ascii=False, indent=4) # 縮進4個空格
 
# 4. 將 類文件對象中的JSON字符串 直接轉換成 Python字典
with open('pengjunlee.json', 'r', encoding='utf-8') as f:
    ret_dic = json.load(f)
    print(type(ret_dic)) # 結果 <class 'dict'>
    print(ret_dic['name']) # 結果 pengjunlee
  • 使用eval()能夠實現(xiàn)簡單的字符串和Python類型的轉化。
user1 = eval('{"name":"pengjunlee"}')
print(user1['name']) # 結果 pengjunlee

到了這里,關于【python模塊】python解析json文件詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Python3.11教程3:模塊和包(pip/conda)、文件系統(tǒng)(os/ shutil/json/pickle/openpyxl/xlrd)

    本文相關鏈接: Python官網(wǎng)、Python 3.11.5 中文文檔、慕課:Python語言程序設計、Real Python :Write More Pythonic Code Miniconda、Anaconda、conda文檔 Python 標準庫官方文檔、 《os — 多種操作系統(tǒng)接口》、《os.path — 常用路徑操作》、《shutil — 高階文件操作》 Pandas文檔《Input/output》、 op

    2024年02月09日
    瀏覽(49)
  • Python 從零開始制作自己的聲音 - wave模塊讀寫wav文件詳解

    Python 從零開始制作自己的聲音 - wave模塊讀寫wav文件詳解

    計算機經(jīng)常被用于處理音頻這種真實世界中的數(shù)據(jù)。聲音經(jīng)過采樣,量化和編碼后,存儲在音頻文件,如wav文件中。 文章首先介紹wave模塊的基礎用法; 再通過生成一定頻率聲波的算法實現(xiàn),來深入講解wave庫的使用。 wave 模塊提供了一個處理 wav 聲音格式的便利接口, 可獲取

    2023年04月09日
    瀏覽(16)
  • 什么是Java中的JSON解析和生成?

    首先,我們來解釋一下JSON是什么。簡單來說,JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,易于閱讀和編寫,同時也易于解析和生成。在Java中,我們有很多種方式來實現(xiàn)JSON解析和生成。接下來,我們來看一下代碼示例吧! 首先,我們來看一下JSON解析。假設我

    2024年02月15日
    瀏覽(45)
  • Unity解析json文件(分為json與jsonArray)

    什么是json? JSON是一種取代XML的數(shù)據(jù)結構,和xml相比,它更小巧但描述能力卻不差,由于它的小巧所以網(wǎng)絡傳輸數(shù)據(jù)將減少更多流量從而加快速度, 那么,JSON到底是什么? JSON就是一串字符串 只不過元素會使用特定的符號標注。 {} 雙括號表示對象 [] 中括號表示數(shù)組 “” 雙引號內(nèi)是

    2024年02月08日
    瀏覽(19)
  • 常用python代碼大全-python使用json模塊處理JSON數(shù)據(jù)

    在Python中, json 模塊提供了一種簡單的方法來編碼和解碼JSON數(shù)據(jù)。以下是一個簡單的例子,說明如何使用 json 模塊來處理JSON數(shù)據(jù)。 首先,我們需要導入 json 模塊: 編碼(Encode)JSON 數(shù)據(jù) 要將Python對象編碼為JSON格式,我們可以使用 json.dumps() 函數(shù)。這個函數(shù)將Python對象轉換為

    2024年01月20日
    瀏覽(20)
  • python標準庫模塊,json

    展示了如何使用json模塊進行編碼和解碼操作的常規(guī)示例: json模塊簡介 json 模塊是Python中的一個編碼和解碼JSON格式的輕量級模塊,主要用于將Python對象編碼為JSON格式輸出或存儲,以及將JSON格式對象解碼為Python對象。 一、概覽 常量、類或方法名 注解 json.dump 方法,傳入一個

    2024年02月16日
    瀏覽(42)
  • 在 ES 模塊(Node.js)中導入 JSON 文件

    Node.js 文檔建議使用 fs 模塊并自己完成讀取文件和解析的工作。 這種方法比起我們接下來用的第二種方法更容易理解。 我們還可以使用 createRequire 加載 JSON 文件。 createRequire 允許您構造 CommonJS require 方法,以便可以使用典型的 CommonJS 功能,例如在 Node.js 中讀取 JSON ES 模塊。

    2024年02月06日
    瀏覽(17)
  • 【C++】使用 nlohmann 解析 json 文件

    nlohman json GitHub - nlohmann/json: JSON for Modern C++ 是一個為現(xiàn)代C++(C++11)設計的JSON解析庫,主要特點是 易于集成,僅需一個頭文件,無需安裝依賴 易于使用,可以和STL無縫對接,使用體驗近似python中的json 1. json初始化 1.1 從文件初始化 1.2 從字符串初始化 方式1 R表示json字符串中

    2024年02月10日
    瀏覽(22)
  • Spark解析JSON文件,寫入hdfs

    一、用Sparkcontext讀入文件,map逐行用Gson解析,輸出轉成一個caseclass類,填充各字段,輸出。 解析JSON這里沒有什么問題。 RDD覆蓋寫的時候碰到了一些問題 : 1.直接saveAsTextFile沒有覆蓋true參數(shù); 2.轉dataframe時,還得一個一個字段顯化才能轉成dataframe; 3.write時,一開始打算寫

    2024年01月23日
    瀏覽(22)
  • python 常用內(nèi)置模塊之 json

    當處理 JSON 數(shù)據(jù)時,Python 中的 json 模塊提供了四個主要的函數(shù):dump、dumps、load 和 loads。這些函數(shù)提供了在 JSON 數(shù)據(jù)和 Python 對象之間進行轉換和序列化的功能。 JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,廣泛用于將數(shù)據(jù)從一個應用程序傳輸?shù)搅硪粋€應用程序

    2024年02月05日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包