最近做的工作中用到了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...