最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文帶你搞懂Python如何解讀JSON文件

 更新時(shí)間:2026年03月31日 09:25:15   作者:mabley  
這篇文章主要為大家詳細(xì)介紹了Python中如何讀取解析JSON文件,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

一、JSON格式詳解

所有 JSON 數(shù)據(jù)需要包裹在一個(gè)花括號(hào)中。

{
    "sites": [
    { "name":"maybe" , "url":"www.maybe.com" }, 
    { "name":"google" , "url":"www.google.com" }
    ]
}
  • Object(對(duì)象):鍵/值對(duì)("key":"value")的集合。集合使用花括號(hào){ }定義。多個(gè)鍵/值對(duì)之間使用逗號(hào),分隔,例如{"name":"pink","url":"unknown"}。
  • Array(數(shù)組):值的有序集合,使用方括號(hào)[ ]定義,數(shù)組中每個(gè)值之間使用逗號(hào) ,進(jìn)行分隔。

1. 基本語(yǔ)法

  • 值可以是數(shù)字、字符串、布爾值、數(shù)組、對(duì)象、null;
  • 鍵必須是唯一的,不能重復(fù);
  • 不可以使用八進(jìn)制或十六進(jìn)制表示數(shù)字。
  • 不支持注釋
  • 可以嵌套

2. 數(shù)據(jù)類型

number:JSON 中不區(qū)分整型和浮點(diǎn)型。此外,JSON 中不能使用八進(jìn)制和十六進(jìn)制表示數(shù)字,但可以使用 e 或 E 來(lái)表示 10 的指數(shù)。

{
    "number_1" : 20,
    "number_2" : -21.5,
    "number_3" : 1.0E+1
}  

value:null 和 true/false

object:JSON 中,對(duì)象由花括號(hào){ }以及其中的若干鍵/值對(duì)組成,一個(gè)對(duì)象中可以包含零個(gè)或多個(gè)鍵/值對(duì),每個(gè)鍵/值對(duì)之間需要使用逗號(hào),分隔.

{
    "author": {
        "name": "C",
        "description": "C語(yǔ)言"
    }
}

array:JSON 中,數(shù)組由方括號(hào)[ ]和其中的若干值組成,值可以是 JSON 中支持的任意類型,每個(gè)值之間使用逗號(hào),進(jìn)行分隔。

{
    "course" : [
        "JSON",
        "CSS",
        {
            "ok" : "well",
            "how" : "fine"
        },
        [
            3.1,
            fasle
        ],
        null
    ]
}

二、python

1. 數(shù)據(jù)文件(data.json)

{
    "employee": {
        "name": "John Doe",
        "age": 35,
        "department": {
            "name": "Engineering",
            "location": "Building A"
        }
    }
}

2.原生python解析

需要導(dǎo)入JSON包進(jìn)行文件解析。

import json

# 讀取 JSON 數(shù)據(jù)
with open('data/data.json', 'r') as f:
    json_data = f.read()

# 解析 JSON 數(shù)據(jù)
data = json.loads(json_data)
print(type(data))  # dict

for key, value in data.items():  # 遍歷第一層
    print(f"Key: {key}, Value: {value}")
    # 如果值是字典,繼續(xù)遍歷第二層
    if isinstance(value, dict):
        for sub_key, sub_value in value.items():  # 遍歷第二層
            print(f"  Sub-key: {sub_key}, Sub-value: {sub_value}")
            # 如果第二層的值還是字典,進(jìn)一步處理
            if isinstance(sub_value, dict):
                for deep_key, deep_value in sub_value.items():
                    print(f"    Deep-key: {deep_key}, Deep-value: {deep_value}")

3. pandas

需要導(dǎo)入pandas包進(jìn)行文件解析。

import pandas as pd

path = 'data/data.json'

# 1. 打開并讀取 JSON 文件
df = pd.read_json(path)
print(type(df))  # DataFrame

# 2. 按行解析 JSON 數(shù)據(jù)
x = df.to_dict(orient='records')
print(type(x))  # list ,其中每個(gè)元素是一個(gè)字典

# 3. 按列解析 JSON 數(shù)據(jù)
y = df.to_dict(orient='list')
print(type(y))  # dict 類型,其中每個(gè)鍵的值是列表

# 4. 扁平化嵌套的 JSON 數(shù)據(jù)
x_normalized = pd.json_normalize(x)
print(x_normalized)

# 5. 將 DataFrame 轉(zhuǎn)換為 JSON 格式
json_data = df.to_json()
print(json_data)

# 6. 將 DataFrame 寫入 JSON 文件
df.to_json('output.json')

到此這篇關(guān)于一文帶你搞懂Python如何解讀JSON文件的文章就介紹到這了,更多相關(guān)Python解讀JSON文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Cython 三分鐘入門教程

    Cython 三分鐘入門教程

    根據(jù)一些我收到的反饋,大家似乎有點(diǎn)混淆——Cython是用來(lái)生成 C 擴(kuò)展到而不是獨(dú)立的程序的。所有的加速都是針對(duì)一個(gè)已經(jīng)存在的 Python 應(yīng)用的一個(gè)函數(shù)進(jìn)行的。
    2009-09-09
  • python爬蟲基本知識(shí)

    python爬蟲基本知識(shí)

    最近在做一個(gè)項(xiàng)目,這個(gè)項(xiàng)目需要使用網(wǎng)絡(luò)爬蟲從特定網(wǎng)站上爬取數(shù)據(jù),于是乎,我打算寫一個(gè)爬蟲系列的文章,與大家分享如何編寫一個(gè)爬蟲。下面這篇文章給大家介紹了python爬蟲基本知識(shí),感興趣的朋友一起看看吧
    2018-03-03
  • python實(shí)現(xiàn)簡(jiǎn)單遺傳算法

    python實(shí)現(xiàn)簡(jiǎn)單遺傳算法

    這篇文章主要介紹了python如何實(shí)現(xiàn)簡(jiǎn)單遺傳算法,幫助大家更好的利用python進(jìn)行數(shù)據(jù)分析,感興趣的朋友可以了解下
    2020-09-09
  • 解決Python串口接收無(wú)標(biāo)識(shí)不定長(zhǎng)數(shù)據(jù)

    解決Python串口接收無(wú)標(biāo)識(shí)不定長(zhǎng)數(shù)據(jù)

    這篇文章主要介紹了解決Python串口接收無(wú)標(biāo)識(shí)不定長(zhǎng)數(shù)據(jù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • python3+requests接口自動(dòng)化session操作方法

    python3+requests接口自動(dòng)化session操作方法

    今天小編就為大家分享一篇python3+requests接口自動(dòng)化session操作方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • python實(shí)現(xiàn)的讀取網(wǎng)頁(yè)并分詞功能示例

    python實(shí)現(xiàn)的讀取網(wǎng)頁(yè)并分詞功能示例

    這篇文章主要介紹了python實(shí)現(xiàn)的讀取網(wǎng)頁(yè)并分詞功能,結(jié)合實(shí)例形式分析了Python使用requests模塊讀取網(wǎng)頁(yè),以及jieba庫(kù)分詞的相關(guān)操作技巧,需要的朋友可以參考下
    2019-10-10
  • pandas 兩列時(shí)間相減換算為秒的方法

    pandas 兩列時(shí)間相減換算為秒的方法

    下面小編就為大家分享一篇pandas 兩列時(shí)間相減換算為秒的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • Python中pypdf庫(kù)處理PDF文件的詳細(xì)說(shuō)明和常見用法

    Python中pypdf庫(kù)處理PDF文件的詳細(xì)說(shuō)明和常見用法

    這篇文章主要介紹了Python中pypdf庫(kù)處理PDF文件的詳細(xì)說(shuō)明和常見用法,?pypdf是Python庫(kù),用于處理PDF文件,支持讀取、修改、合并、拆分、加密等操作,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-05-05
  • Python測(cè)試框架pytest核心庫(kù)pluggy詳解

    Python測(cè)試框架pytest核心庫(kù)pluggy詳解

    這篇文章主要為大家介紹了Python測(cè)試框架pytest核心庫(kù)pluggy使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 簡(jiǎn)單介紹Python中利用生成器實(shí)現(xiàn)的并發(fā)編程

    簡(jiǎn)單介紹Python中利用生成器實(shí)現(xiàn)的并發(fā)編程

    這篇文章主要介紹了簡(jiǎn)單介紹Python中利用生成器實(shí)現(xiàn)的并發(fā)編程,使用yield生成器函數(shù)進(jìn)行多進(jìn)程編程是Python學(xué)習(xí)進(jìn)階當(dāng)中的重要知識(shí),需要的朋友可以參考下
    2015-05-05

最新評(píng)論

阿巴嘎旗| 时尚| 台北市| 晋中市| 扬州市| 阳东县| 中西区| 肥东县| 贵港市| 贵港市| 额济纳旗| 泊头市| 淮阳县| 上高县| 宁海县| 萨嘎县| 夏邑县| 崇礼县| 阳信县| 阿拉善右旗| 瑞昌市| 江阴市| 崇州市| 保亭| 浠水县| 乌什县| 罗山县| 绥宁县| 洛南县| 四平市| 成安县| 宁海县| 天津市| 盘锦市| 阿拉尔市| 崇阳县| 红安县| 晋江市| 新乡县| 修武县| 金山区|