python實踐之json檔案讀取與修改某個值

2021-10-08 21:32:19 字數 3214 閱讀 8893

最近做的工作中用到了python讀取與修改json檔案,在處理json檔案時將物件看做字典 將陣列看做列表,json就是物件中巢狀列表再巢狀物件的乙個可遞迴的資料結構,處理起來比較麻煩,最初頭疼,頭疼了一會就想轍了,最終當然是想出轍來了,於是有了這篇文章。

總共的步驟有3步:

其中用到的知識點是:巢狀型別的資料 也可以通過索引進行修改:

譬如:

objectdict[

"com"

][dicnum-1]

["comport"

]= comport

其他**:

import json

class

rs485

(object):

def__init__

(self,parameterdict)

: self.comname = parameterdict[

'comname'

] self.comport = parameterdict[

'comport'

] self.baudrate = parameterdict[

'baudrate'

] self.parity = parameterdict[

'parity'

] self.stopbits = parameterdict[

'stopbits'

]def

motifyjson

(self,

file):

self.baudrate =

19200

self.parity =

"odd"

self.stopbits =

1.5with

open

(file

,'r'

, encoding=

'utf-8'

)as f:

objectdict = json.load(f)

print

(objectdict[

"com"])

for key in objectdict:

if key ==

"com"

: portlist = objectdict[key]

dicnum =

0for portdict in portlist:

dicnum +=

1for portdictkey in portdict:

if portdict[portdictkey]

== self.comname:

#portparameterdict = portdict

objectdict[

"com"

][dicnum-1]

["comport"

]= self.comport

objectdict[

"com"

][dicnum-1]

["baudrate"

]= self.baudrate

objectdict[

"com"

][dicnum-1]

["parity"

]= self.parity

objectdict[

"com"

][dicnum-1]

["stopbits"

]= self.stopbits

print

(objectdict[

"com"])

with

open

('gwconfig2.txt'

,'w'

, encoding=

'utf-8'

)as f:

json.dump(objectdict, f, ensure_ascii=

false

, indent=4)

# 可以考慮傳入乙個字典,通過字典裡的數值進行初始化

defgetparameterdict

(file

,type

,port)

:with

open

(file

,'r'

,encoding=

'utf-8'

)as f:

objectdict = json.load(f)

for key in objectdict:

if key ==

type

: portlist = objectdict[key]

for portdict in portlist:

for portdictkey in portdict:

if portdict[portdictkey]

== port:

portparameterdict = portdict

return portparameterdict

# print('eth1.ip is:',eth1.ip)

# print('eth1.port is',eth1.port)

rs485parameter = getparameterdict(

'gwconfig.txt'

,'com'

,'com2'

)com1 = rs485(rs485parameter)

com1.motifyjson(

'gwconfig.txt'

)

所用的json檔案

,

],"com":[

, ,

]}

with

open

('gwconfig.txt'

,'r'

, encoding=

'utf-8'

)as f:

ret_dic = json.load(f)

with

open

('gwconfig2.txt'

,'w'

, encoding=

'utf-8'

)as f:

json.dump(ret_dic, f, ensure_ascii=

false

, indent=

4)

python初學習之json檔案訪問

畢業了,前段時間準備畢業事宜。剛來到研究生學校,在學習python。import json def hello user username input 請輸入您的姓名 if judge user username print username 您在系統名單中!else print username ...

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模式讀取檔案,當檔案中包含中文時,會報...

python 讀寫json檔案

以字串的形式進行json讀寫 函式功能 json str json.dumps 要寫入的字典表 將字典表寫入json字串 json data json.loads json str 將json字串讀為字典表 import json json的true,false,null寫法和字典表 true,fa...