py实现对json配置文件的读写访问

该博客介绍了如何使用Python实现对JSON配置文件的读写操作。通过定义一个名为`CliConf`的类,实现了加载、获取、设置配置项以及保存到文件的功能。示例中展示了从`cliconf.json`加载配置,更新并保存配置到文件的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#! /usr/bin/pytdon
# -*- coding:utf-8 -*-

'''
配置管理 - 以json的形式存放配置
可以方便地进行获取和设备json格式的配置文件
'''
import json

class CliConf:
'''
usage: cliconf = CliConf()
cliconf.load(filename)
# try to get config
setting1 = cliconf["key1"]
setting2 = cliconf["key2"]
# try to recover setting
cliconf["key2"] = "NewValue"
cliconf.write() # save to file
'''
def __init__(self):
self._conf_ = {}
self.conf = dict( filename = 'cliconf.json' )

def __getattr__(self, name):
return self.conf.get(name)
def __getitem__(self, name):
return self.conf.get(name)
def __setitem__(self, name, val):
self.conf[name] = val

def get(self, name, defv=None):
val = self.conf.get(name)
if not val:
if defv:
val = defv
self.conf[name] = defv
return val
def setConf(self, mp):
if isinstance(mp, dict):
self.conf.update(mp)

def load(self, fna = None):
if fna:
self.conf["filename"] = fna
try:
fil = None
print("Load Conf File[%s]"%self.conf["filename"])
fil = open(self.conf["filename"], 'r')
self.conf.update(json.load(fil))
except:
pass
finally:
fil and fil.close()

def save(self, fna = None):
if fna:
self.conf["filename"] = fna
try:
fil = None
fil = open(self.conf["filename"], 'w')
json.dump(self.conf, fil, indent=4)
except BaseException,e:
print e
finally:
fil and fil.close()

config = CliConf()
config.load()

if __name__ == "__main__":
cli = CliConf()
print( ' -- ' )
cli.load()

print(cli["vvv"])
cli.ipaddr6 = 99
cli.setConf( {"ipaddr2": "windowns"} )
cli["nitem"] = "i am newitem"
cli.save()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值