python關於json檔案的讀取寫入實戰

2021-10-24 19:09:19 字數 2527 閱讀 8927

一、理解

為什麼要用json模組的格式讀取寫入?

1、由於python預設讀取write()寫入read()檔案的資料格式為字串(str),不能讀取寫入列表、字典等型別資料,所以需要採用json資料格式來儲存資料。

2、json資料格式在多種語言中通用,有利於分享資料。

二、python讀取寫入json格式分別有2種不同形式

1、json.dump()用於儲存寫入列表至list.json檔案。

import json

numbers =[2

,1,4

,3,4

,5]file_name =

"list.json"

with

open

(file_name,

'w')

as f:

#寫入方式1,等價於下面這行

json.dump(numbers,f)

#把列表numbers內容寫入到"list.json"檔案中

#寫入方式2

2、json.load()讀取本地的list.json檔案。

import json

file_name =

"list.json"

with

open

(file_name)

as f:

#讀取方式1,等價於下面這行

list

= json.load(f)

#讀取方式1

三、json資料格式實戰

實現功能:使用者輸入使用者名稱,如果以前儲存了使用者名稱,就載入它,否則,就儲存輸入的使用者名稱,並相應列印不同的問候提示語。

import json

import os

"""解析:判斷json檔案是否存在,獲取檔案中的列表,

defsearch_file

(filename)

:"""封裝判斷name.json檔案是否存在"""

if os.path.exists(filename)

:#存在則直接呼叫函式search_username(),進一步驗證使用者名稱

search_username(

)else

:#檔案不存在,則建立包含空列表(為了後面新增列表元素)的json檔案,再呼叫search_username()

names_list =

with

open

(filename,

"w+"

)as f:

json.dump(names_list,f)

search_username(

)def

search_username()

:"""封裝判斷使用者名稱是否存在並儲存、列印相應內容"""

with

open

(filename,

'r+'

)as f:

names_list = json.load(f)

if(username in names_list)

:print

("welcome back "

+ username +

"!")

else

:with

open

(filename,

'w')

as f:

json.dump(names_list, f)

print

("we'll remember you when you come back, "

+ username +

"!")

filename =

"name.json"

username =

input

("what is name?\n "

)search_file(filename)

執行上述**:

1、第一次輸入新增使用者名稱:chenyi,執行結果如下:

2、第二次輸入已存在使用者名稱:chenyi,執行結果如下:

此時name.json中的內容如下:

python中關於json的使用

匯入json模組 import json 建立乙個字典型別 l dumps可以將字典轉化為字串 jsdumps json.dumps l print type jsdumps jsloads json.loads jsdumps print type jsloads print jsdumps pr...

關於Spring boot檔案json讀取與返回

首先把json檔案存resources下 classpathresource classpathresource new classpathresource json string str ioutils.tostring new inputstreamreader classpathresourc...

Python 讀取json檔案

建立json檔案 1 8 讀取json檔案 1 import json 2 3 def loadfont 4 f open settings.json encoding utf 8 設定以utf 8解碼模式讀取檔案,encoding引數必須設定,否則預設以gbk模式讀取檔案,當檔案中包含中文時,會報...