Python如何讀取json檔?dic = json.loads( json_str ) ; json的保留字:null, true, false(區分大小寫,全小寫), null(非”null”,非Null)自動轉譯為None, true(非”true”,非True)自動轉譯為True(bool), false(非”false”,非False)自動轉譯為False(bool);colab如何掛載雲端硬碟? from google.colab import drive ; json檔的decode與encode? json.load() ; json.loads() ; json.dump() ; json.dumps() #s代表string的意思,有s的指令,參數需使用str type

加入好友
加入社群
Python如何讀取json檔?dic = json.loads( json_str ) ; json的保留字:null, true, false(區分大小寫,全小寫), null(非"null",非Null)自動轉譯為None, true(非"true",非True)自動轉譯為True(bool), false(非"false",非False)自動轉譯為False(bool);colab如何掛載雲端硬碟? from google.colab import drive ; json檔的decode與encode? json.load() ; json.loads() ; json.dump() ; json.dumps() #s代表string的意思,有s的指令,參數需使用str type - 儲蓄保險王

code:

import json

# 假設有一個 JSON 字串
json_data = '{"key1": null, "key2": "value2", "key3": null}'

# 解析 JSON 字串為 Python 的數據結構
data = json.loads(json_data)
print("data:",data)

# 使用 get() 方法獲取值並處理 null
value1 = data.get("key1")
value2 = data.get("key2")
value3 = data.get("key3")
value4 = data.get("key4") #不存在 "key4"
value5 = data.get("key5","N/A") #不存在 "key5"

# 輸出結果
print("value1:",value1)  # None
print("value2:",value2)  # value2
print("value3:",value3)  # None
print("value4:",value4)  # None
print("value5:",value5)  # "N/A"

code:

Python如何讀取json檔?dic = json.loads( json_str ) ; json的保留字:null, true, false(區分大小寫,全小寫), null(非"null",非Null)自動轉譯為None, true(非"true",非True)自動轉譯為True(bool), false(非"false",非False)自動轉譯為False(bool);colab如何掛載雲端硬碟? from google.colab import drive ; json檔的decode與encode? json.load() ; json.loads() ; json.dump() ; json.dumps() #s代表string的意思,有s的指令,參數需使用str type - 儲蓄保險王

輸出結果:

Python如何讀取json檔?dic = json.loads( json_str ) ; json的保留字:null, true, false(區分大小寫,全小寫), null(非"null",非Null)自動轉譯為None, true(非"true",非True)自動轉譯為True(bool), false(非"false",非False)自動轉譯為False(bool);colab如何掛載雲端硬碟? from google.colab import drive ; json檔的decode與encode? json.load() ; json.loads() ; json.dump() ; json.dumps() #s代表string的意思,有s的指令,參數需使用str type - 儲蓄保險王

value5 = data[“key5”]
這樣取dict的value,
若key不存在,
就會觸發KeyError: ‘key5’
使用.get() 就不會觸發KeyError
而是回傳None
或者第二個參數,
可以設定回傳自己想要的字串,
如”N/A”

將以上程式改寫一下
code:

Python如何讀取json檔?dic = json.loads( json_str ) ; json的保留字:null, true, false(區分大小寫,全小寫), null(非"null",非Null)自動轉譯為None, true(非"true",非True)自動轉譯為True(bool), false(非"false",非False)自動轉譯為False(bool);colab如何掛載雲端硬碟? from google.colab import drive ; json檔的decode與encode? json.load() ; json.loads() ; json.dump() ; json.dumps() #s代表string的意思,有s的指令,參數需使用str type - 儲蓄保險王

輸出結果:

Python如何讀取json檔?dic = json.loads( json_str ) ; json的保留字:null, true, false(區分大小寫,全小寫), null(非"null",非Null)自動轉譯為None, true(非"true",非True)自動轉譯為True(bool), false(非"false",非False)自動轉譯為False(bool);colab如何掛載雲端硬碟? from google.colab import drive ; json檔的decode與encode? json.load() ; json.loads() ; json.dump() ; json.dumps() #s代表string的意思,有s的指令,參數需使用str type - 儲蓄保險王

如果將”key3″的value
從true改為True,
反而會觸發JSONDecodeError
null改為Null也是


true, false, null:

Python如何讀取json檔?dic = json.loads( json_str ) ; json的保留字:null, true, false(區分大小寫,全小寫), null(非"null",非Null)自動轉譯為None, true(非"true",非True)自動轉譯為True(bool), false(非"false",非False)自動轉譯為False(bool);colab如何掛載雲端硬碟? from google.colab import drive ; json檔的decode與encode? json.load() ; json.loads() ; json.dump() ; json.dumps() #s代表string的意思,有s的指令,參數需使用str type - 儲蓄保險王

讀取json file
test.txt (副檔名通常為.json):

Python如何讀取json檔?dic = json.loads( json_str ) ; json的保留字:null, true, false(區分大小寫,全小寫), null(非"null",非Null)自動轉譯為None, true(非"true",非True)自動轉譯為True(bool), false(非"false",非False)自動轉譯為False(bool);colab如何掛載雲端硬碟? from google.colab import drive ; json檔的decode與encode? json.load() ; json.loads() ; json.dump() ; json.dumps() #s代表string的意思,有s的指令,參數需使用str type - 儲蓄保險王

code:

Python如何讀取json檔?dic = json.loads( json_str ) ; json的保留字:null, true, false(區分大小寫,全小寫), null(非"null",非Null)自動轉譯為None, true(非"true",非True)自動轉譯為True(bool), false(非"false",非False)自動轉譯為False(bool);colab如何掛載雲端硬碟? from google.colab import drive ; json檔的decode與encode? json.load() ; json.loads() ; json.dump() ; json.dumps() #s代表string的意思,有s的指令,參數需使用str type - 儲蓄保險王


json.loads()的反向,
json.dumps():

Python如何讀取json檔?dic = json.loads( json_str ) ; json的保留字:null, true, false(區分大小寫,全小寫), null(非"null",非Null)自動轉譯為None, true(非"true",非True)自動轉譯為True(bool), false(非"false",非False)自動轉譯為False(bool);colab如何掛載雲端硬碟? from google.colab import drive ; json檔的decode與encode? json.load() ; json.loads() ; json.dump() ; json.dumps() #s代表string的意思,有s的指令,參數需使用str type - 儲蓄保險王

colab掛載雲端硬碟後,
將內容寫入output.json

Python如何讀取json檔?dic = json.loads( json_str ) ; json的保留字:null, true, false(區分大小寫,全小寫), null(非"null",非Null)自動轉譯為None, true(非"true",非True)自動轉譯為True(bool), false(非"false",非False)自動轉譯為False(bool);colab如何掛載雲端硬碟? from google.colab import drive ; json檔的decode與encode? json.load() ; json.loads() ; json.dump() ; json.dumps() #s代表string的意思,有s的指令,參數需使用str type - 儲蓄保險王

/content/drive 是 Colab 中的預設掛載點,用於存取 Google 雲端硬碟中的文件。當你執行 drive.mount('/content/drive') 指令時,它會將 Google 雲端硬碟掛載到 Colab 的 /content/drive 目錄下。

這樣一來,你就可以透過該路徑來存取 Google 雲端硬碟中的文件,例如 /content/drive/MyDrive/folder/file.txt 就代表 Google 雲端硬碟中的 folder 資料夾中的 file.txt 文件。
MyDrive 代表你的 Google 雲端硬碟的根目錄,並且不能修改。你可以在 MyDrive 目錄下創建文件夾和文件,並在程式中指定正確的路徑來進行讀寫操作。

你可以自行更改 drive.mount() 中的路徑,以指定不同的掛載點,但需要確保該路徑是有效的且存在。

這樣做的目的是為了讓你可以在 Colab 環境中訪問和操作你的 Google 雲端硬碟上的文件。一旦成功掛載,你就可以通過指定 /content/drive 或其子目錄的路徑來訪問你的文件,就像在本地文件系統中一樣。

需要注意的是,當你在 Colab 中執行 drive.mount('/content/drive') 時,系統可能會要求你進行授權以訪問你的 Google 雲端硬碟。
drive.mount('/content') 是無效的語法,因為你需要指定要掛載的目錄,而 /content 是 Colab 中的一個系統預設目錄,不能直接作為掛載點。

在 Colab 中,你可以使用以下幾個常見的路徑:

  1. /content:Colab 的預設工作目錄,通常你會在這個目錄下進行檔案的讀取和寫入操作。
  2. /content/drive/:這是 Colab 中 Google 雲端硬碟的預設掛載點。你可以在這個目錄下存取你的雲端硬碟內容。
  3. /content/sample_data/:Colab 提供的示範資料集所在的目錄。你可以在這個目錄下找到一些範例檔案和資料集。

當然,你也可以在 Colab 中自行創建其他目錄或指定不同的路徑,只要確保該路徑是有效的且存在即可。你可以使用標準的 Python 檔案處理方式來進行路徑操作,例如使用 os 模組來創建目錄os.makedirs()、檢查檔案是否存在等。


output.json路徑:

Python如何讀取json檔?dic = json.loads( json_str ) ; json的保留字:null, true, false(區分大小寫,全小寫), null(非"null",非Null)自動轉譯為None, true(非"true",非True)自動轉譯為True(bool), false(非"false",非False)自動轉譯為False(bool);colab如何掛載雲端硬碟? from google.colab import drive ; json檔的decode與encode? json.load() ; json.loads() ; json.dump() ; json.dumps() #s代表string的意思,有s的指令,參數需使用str type - 儲蓄保險王

output.json內容:

Python如何讀取json檔?dic = json.loads( json_str ) ; json的保留字:null, true, false(區分大小寫,全小寫), null(非"null",非Null)自動轉譯為None, true(非"true",非True)自動轉譯為True(bool), false(非"false",非False)自動轉譯為False(bool);colab如何掛載雲端硬碟? from google.colab import drive ; json檔的decode與encode? json.load() ; json.loads() ; json.dump() ; json.dumps() #s代表string的意思,有s的指令,參數需使用str type - 儲蓄保險王

跟json.load() ; json.loads() 一樣
dump()也有
json.dump() ; json.dumps()

改用json.dump():

Python如何讀取json檔?dic = json.loads( json_str ) ; json的保留字:null, true, false(區分大小寫,全小寫), null(非"null",非Null)自動轉譯為None, true(非"true",非True)自動轉譯為True(bool), false(非"false",非False)自動轉譯為False(bool);colab如何掛載雲端硬碟? from google.colab import drive ; json檔的decode與encode? json.load() ; json.loads() ; json.dump() ; json.dumps() #s代表string的意思,有s的指令,參數需使用str type - 儲蓄保險王

輸出結果:

Python如何讀取json檔?dic = json.loads( json_str ) ; json的保留字:null, true, false(區分大小寫,全小寫), null(非"null",非Null)自動轉譯為None, true(非"true",非True)自動轉譯為True(bool), false(非"false",非False)自動轉譯為False(bool);colab如何掛載雲端硬碟? from google.colab import drive ; json檔的decode與encode? json.load() ; json.loads() ; json.dump() ; json.dumps() #s代表string的意思,有s的指令,參數需使用str type - 儲蓄保險王

資料夾中多了output2.json

Python如何讀取json檔?dic = json.loads( json_str ) ; json的保留字:null, true, false(區分大小寫,全小寫), null(非"null",非Null)自動轉譯為None, true(非"true",非True)自動轉譯為True(bool), false(非"false",非False)自動轉譯為False(bool);colab如何掛載雲端硬碟? from google.colab import drive ; json檔的decode與encode? json.load() ; json.loads() ; json.dump() ; json.dumps() #s代表string的意思,有s的指令,參數需使用str type - 儲蓄保險王
內容一樣:
{"key1": true, "key2": false, "key3": null}

掛載雲端硬碟後,
複製路徑:
Python如何讀取json檔?dic = json.loads( json_str ) ; json的保留字:null, true, false(區分大小寫,全小寫), null(非"null",非Null)自動轉譯為None, true(非"true",非True)自動轉譯為True(bool), false(非"false",非False)自動轉譯為False(bool);colab如何掛載雲端硬碟? from google.colab import drive ; json檔的decode與encode? json.load() ; json.loads() ; json.dump() ; json.dumps() #s代表string的意思,有s的指令,參數需使用str type - 儲蓄保險王

貼上該路徑:
/content/drive/MyDrive/python
也可以指定該路徑,
將檔案寫入該路徑
或從該路徑讀取

推薦hahow線上學習python: https://igrape.net/30afN

加入好友
加入社群
Python如何讀取json檔?dic = json.loads( json_str ) ; json的保留字:null, true, false(區分大小寫,全小寫), null(非"null",非Null)自動轉譯為None, true(非"true",非True)自動轉譯為True(bool), false(非"false",非False)自動轉譯為False(bool);colab如何掛載雲端硬碟? from google.colab import drive ; json檔的decode與encode? json.load() ; json.loads() ; json.dump() ; json.dumps() #s代表string的意思,有s的指令,參數需使用str type - 儲蓄保險王

儲蓄保險王

儲蓄險是板主最喜愛的儲蓄工具,最喜愛的投資理財工具則是ETF,最喜愛的省錢工具則是信用卡

You may also like...

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *